Strony

poniedziałek, 18 listopada 2019

Symulator automatu do gier w Delphi część 3

<<-- Przejdź do części 1

Efekt imitujący kręcenie się obiektu wykorzystaliśmy już w grze o nazwie „Gra w kości”. Użyjemy więc podobnego rozwiązania:

for i := 0 to 10 do //wykonaj poniższe instrukcje 10 razy
begin
sleep(30); //czekaj 30 ms
Memo1.Text:= IntToStr(i); //wyświetl wynik w oknie nr 1 planszy
Memo6.Text:= IntToStr(i);
Memo11.Text:= IntToStr(i);
Memo2.Text:= IntToStr(i);
Memo7.Text:= IntToStr(i);
Memo12.Text:= IntToStr(i);
Memo3.Text:= IntToStr(i);
Memo8.Text:= IntToStr(i);
Memo13.Text:= IntToStr(i);
Memo4.Text:= IntToStr(i);
Memo9.Text:= IntToStr(i);
Memo14.Text:= IntToStr(i);
Memo5.Text:= IntToStr(i);
Memo10.Text:= IntToStr(i);
Memo15.Text:= IntToStr(i); //wyświetl wynik w oknie nr 1 planszy
Memo1.Update; //uaktualnij komponent Memo1
Memo6.Update;
Memo11.Update;
Memo2.Update;
Memo7.Update;
Memo12.Update;
Memo3.Update;
Memo8.Update;
Memo13.Update;
Memo4.Update;
Memo9.Update;
Memo14.Update;
Memo5.Update;
Memo10.Update;
Memo15.Update; //uaktualnij komponent Memo15
end;


Jak widzimy, w każdym polu zostają wyświetlone po kolei cyfry, od zera do dziewięciu, a każda wyświetlana jest tylko przez 0,3 sekundy. Tak szybka zmiana wyświetlanych cyfr sprawia wrażenie kręcenia się bębna. Z uwagi na to, iż w komponentach Memo co rusz następuje wymiana cyfr na inne, musimy użyć polecenia update, aby za każdym razem aktualizować ten komponent. Po obrocie bębnów następuje wyświetlenie cyfr na pierwszym bębnie, złożonym z komponentów Memo 1, 6 i 11:

//zatrzymaj i wyświetl obrazki na 1 bębnie
Memo1.Text:= IntToStr(M1); //wyświetl wynik w oknie nr 1 planszy
Memo6.Text:= IntToStr(M6);
Memo11.Text:= IntToStr(M11);
Memo1.Update; //uaktualnij komponent Memo1
Memo6.Update;
Memo11.Update;

Chcąc uzyskać efekt kręcenia się bębnów i kolejnego ich zatrzymywania, musimy cały powyższy schemat zastosować wiele razy, za każdym razem jednak odejmując z procedury kolejny bęben, który właśnie został zatrzymany. Na koniec pozostaje nam już tylko zakręcenie ostatnim bębnem, złożonym z komponentów Memo 5, 10 ,15.

Po wyświetleniu na bębnach cyfr z nowego rozdania przystępujemy do przeglądania zbioru warunków, aby sprawdzić, czy wyświetlone liczby nie tworzą jakiegoś układu. Na początek sprawdzamy, czy nie pojawiły się bonusy. Jak pamiętamy, bonus uzyskujemy za wyświetlenie cyfry zero w którymkolwiek narożnym polu lub w polu środkowym. Oto przykład dla lewego, górnego narożnego pola:

if M1= 0 then //jeżeli zostało wylosowane 0 to daj bonus
begin
Memo1.Color:= clgreen; //zmień kolor okna nr 1 na zielony
Bonus:= Random(10); //wylosuj bonus z przedziału 0-9
Wynik:= StrToInt(Edit1.Text); //odczytaj ilość wygranych punktów za układ
Wynik:= Wynik+(Bonus*Stawka); //dodaj punkty za trafiony układ na tablicy Wygranych
Edit1.Text:= IntToStr(Wynik); //wyświetl punkty w polu Wygrane
Konto:= StrToInt(Edit2.Text); //odczytaj Stan konta
Konto:= Konto+Wynik; //dodaj punkty do konta za trafiony układ
Edit2.Text:= IntToStr(Konto); //wyświetl Stan konta
end;

Jeżeli w pierwszym polu pierwszego bębna zostanie wyświetlone zero, wtedy zmieniamy kolor tego pola na zielony i losujemy wartość bonusu z przedziału od 0 do 9. Aby dodać go do naszego konta, musimy najpierw odczytać jego stan, a następnie po dodaniu, wyświetlić zaktualizowaną wartość. Wartość bonusu uzależniona jest od wybranej stawki, więc naliczając go, nie zapominamy przez nią pomnożyć. W celach informacyjnych uzyskaną wartość bonusu wyświetlamy także w polu prezentującym aktualną wygraną. Powyższy schemat stosujemy do sprawdzenia pozostałych bonusów.


Artykuł pochodzi z mojej książki pt. "Delphi w przykładach dla początkujących". Zapraszam na Stronę książki.

poradnik programowania Delphi





Ciekawe artykuły:

    
    Zapoznaj się z innymi artykułami. Przejdź do zakładki Spis artykułów.

Brak komentarzy:

Prześlij komentarz