poniedziałek, 25 listopada 2019

Symulator automatu do gier w Delphi część 4

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

Po sprawdzeniu bonusów przystępujemy do sprawdzania poszczególnych układów. Ogólnie mamy trzy typy układów: złożone z trzech takich samych cyfr, złożone z czterech elementów i z pięciu. Każdy z nich może występować w różnych konfiguracjach i być ułożony na różnych bębnach.

Na początek sprawdzamy układy złożone z trzech elementów, począwszy od lewej górnej poziomej trójki, czyli pola Memo 1, 2 i 3:

1 2 3 4 5
6 7 8 9 10 
11 12 13 14 15

if (M1=M2) and (M1=M3) then //jeżeli będą 3 takie same liczby obok siebie
begin
Memo1.Color:= clred; //zaznacz kolorem czerwonym trafione okno
Memo2.Color:= clred; //zaznacz kolorem czerwonym trafione okno
Memo3.Color:= clred; //zaznacz kolorem czerwonym trafione okno
Wynik:= StrToInt(Edit1.Text); //odczytaj wynik z pola Wyników
Wynik:= Wynik+(15*Stawka); //dodaj punkty za trafiony układ na tablicy Wygranych
Edit1.Text:= IntToStr(Wynik); //wyświetl wynik w polu Wyników
Konto:= StrToInt(Edit2.Text); //odczytaj Stan konta
Konto:= Konto+(15*Stawka); //dodaj punkty do konta za trafiony układ
Edit2.Text:= IntToStr(Konto); //wyświetl Stan konta
end;

Jak widzimy kod wykonujący ten warunek jest prawie identyczny z tym, którego używaliśmy do sprawdzania bonusów. Jedynymi zmianami są inne pokolorowanie pola (na czerwono) oraz przyznanie wyższej ilości punktów (15 pkt). W podobny sposób sprawdzamy układy złożone z większej ilości elementów, zawsze porównując, czy leżące obok siebie pola zawierają takie same cyfry.

Analizując kod programu, widzimy, iż znaczna jego część to tylko sprawdzanie kolejnych możliwych układów, jakie mogą wystąpić. Cały kod programu nie jest więc tyle skomplikowany, ile po prostu rozbudowany.

Na końcu warunków sprawdzających realizujemy nasze oczekiwanie, aby po wyświetleniu jednocześnie zer w środkowym i narożnych polach, program zamienił się w kapryśną fortunę i – w zależności od stanu naszego konta – uczynił nas bankrutem lub szczęśliwcem, któremu nie tylko umorzono dług, ale jeszcze dodano 50 punktów:

if (M1=0) and (M1=M5) and (M1=M8) and (M1=M11) and (M1=M15) then
begin
Memo1.Color:= clblue; //zaznacz kolorem niebieskim trafione okno
Memo5.Color:= clblue; //zaznacz kolorem niebieskim trafione okno
Memo8.Color:= clblue; //zaznacz kolorem niebieskim trafione okno
Memo11.Color:= clblue; //zaznacz kolorem niebieskim trafione okno
Memo15.Color:= clblue; //zaznacz kolorem niebieskim trafione okno
Konto:= StrToInt(Edit2.Text); //odczytaj Stan konta
if Konto > 0 then //jeżeli stan konta jest większy od zera
begin
Edit1.Text:= 'BANKRUT!!!'; //wyświetl napis 'BANKRUT' w polu Wygranych
Edit2.Text:= IntToStr(0) //wyświetl zero w polu Stan konta
end //bez średnika
else //jeżeli stan konta jest mniejszy od zera
begin
Edit1.Text:= 'BONUS!!!'; //wyświetl napis 'BONUS' w polu Wygranych
Edit2.Text:= IntToStr(50) //wyświetl 50 pkt w polu Stan konta
end;
end;

Na samym końcu procedury umieszczamy polecenie ograniczające nasze zadłużenie:

if Konto < (-200) then //jeżeli debet jest większy niż 200 pkt wtedy
begin
Button2.Enabled:=False; //...zablokuj przycisk Start
end;

Po przekroczeniu granicy długu ustalonej na 200 złotych program blokuje przycisk „START”, uniemożliwiając dalszą grę. Konstrukcja naszego kodu jest jednak tak zbudowana, iż w przypadku zablokowania konta możemy użyć przycisku „Zasil konto”, który doda nam 50 punktów i w ten sposób spłaci część długu, odblokowując przycisk „START”.

Polecenie sprawdzające wysokość długu i blokujące przycisk „START” musimy umieścić na samym końcu, gdyż może zaistnieć taka sytuacja, że w ostatniej chwili trafimy na układ, który spłaci część długu i stan naszego zadłużenia nie zostanie przekroczony. Musimy więc warunki sprawdzające poszczególne układy umieścić wcześniej, przed tym poleceniem.

Na podobnych zasadach, jakie użyliśmy w tym projekcie, możemy ustalać kolejne układy i bonusy, które nie zostały przez nas przewidziane. Z pewnością dużym uatrakcyjnieniem będzie także wymiana cyfr na obrazki oraz włączenie do projektu dźwięków towarzyszących kręceniu się bębnów i trafieniu bonusów czy układów. Nie jest to trudne zadanie, wystarczy tylko we właściwe miejsca dopisać jedną lub kilka (w zależności od użytych rozwiązań) linii kodu odtwarzającego dźwięk.

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

Wspomóż mnie lub zostań moim patronem już od 5 zł - sprawdź szczegóły

Moje e-booki

Kliknij w okładkę, aby przejść do strony książki

Przejdź do strony książki Przejdź do strony książki