<<-- 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.
Ciekawe artykuły:
- Przeżycia na granicy śmierci
- Niezwykłe opowieści o niezwykłych ludziach
- AntyNoble - śmieszne badania naukowe
Brak komentarzy:
Prześlij komentarz