Komentarz:
1.
Stałe elementy, znane z poprzednich zabaw
Pierwszą część kodu,
aż do procedury opisującej przycisk START, nie komentujemy, gdyż
znalazła ona swój opis w komentarzu do zabawy „Policz, ile tojest- wersja prosta”.
2.
Gdy naciśniesz przycisk START
Edit1.Clear;
//wyczyść
pole edycyjne (Do podawania Odpowiedzi)
Randomize;
//uruchom
maszynę losującą
WYNIK:=Random(99999);
//wylosuj plik do powtórzenia od 0
do 99999
Na początku procedury
usuwamy naszą poprzednią odpowiedź z pola edycyjnego, a następnie
uruchamiamy maszynę losującą, aby wylosowała liczby do
powtórzenia. W naszej zabawie nie musimy losować każdej liczby
osobno, choć oczywiście moglibyśmy. Upraszczamy jednak kod losując
jedną liczbę z zakresu od 0 do 99999. Zazwyczaj wylosowana zostanie
liczba pięcioznakowa, czyli tyle, ile założyliśmy. Istnieje małe
prawdopodobieństwo, że wylosowana liczba będzie jedno- czy
powiedzmy dwuznakowa, taka możliwość istnieje, jednak możemy
uznać to za bonus zabawy, że daje nam do powtórzenia prostą
liczbę. Gdybyśmy chcieli, aby program za każdym razem przedstawiał
pięć liczb, musielibyśmy każdą z nich losować i przedstawiać
osobno, względnie musielibyśmy tę naszą jedną liczbę obarczyć
kilkoma warunkami, aby program wymuszał użycie pięciu znaków.
Ponieważ w naszej
zabawie używamy prostej formy, więc najprościej będzie po prostu
wyświetlić ową liczbę na etykiecie programu, obok etykiety
Label1, która przedstawia napis „Powtórz liczby”. Skoro
wszystkie liczby do powtórzenia wyświetlamy jedna obok drugiej
(jako jedną liczbę pięcioznakową), to i w takiej samej formie
musimy wpisywać odpowiedź, w przeciwnym wypadku program potraktuje
ją jako błędną.
Dla przejrzystości
przedstawianych liczb możemy oddzielić je spacjami, używając
metody WYNIK [pozycja liczby w szeregu], czyli na przykład, chcąc
wyświetlić trzecią liczbę ze zmiennej WYNIK piszemy: Wynik[3].
Spacje wyświetlamy na etykiecie dodając segment typu (+' '+) -
pomiędzy apostrofami umieszczamy jedno miejsce wolne, czyli właśnie
spację. Chcąc teraz podać prawidłową odpowiedź, musimy i my
podawać liczby, oddzielając je spacjami.
Label7.Caption:=IntToStr(WYNIK);
//wyświetl liczbę do powtórzenia
Label7.Update; //uaktualnij komponent
label
Button2.Enabled:=false;
//zablokuj przycisk Sprawdź
Sleep(3000);
//czekaj 3
sekundy
Label7.Caption:='powtórz';
//zamiast liczby wyświetl napis
'powtórz'
Button2.Enabled:=true;
//odblokuj przycisk Sprawdź
Edit1.SetFocus;
//ustaw focus w Polu do
Odpowiedzi
W
drugiej części kodu, którą powyżej prezentujemy, wyświetlamy
nasze liczby jako jedną liczbę pięcioznakową. Druga linia
(Label7.Update) odpowiada za aktualizację napisu etykiety, gdyż
zmieniamy ją dwukrotnie w czasie pracy procedury. Teraz wprowadzamy
blokadę na przycisk Sprawdź, aby nieuczciwy gracz nie mógł go
użyć podczas wyświetlania liczb.
Czas wyświetlania
ustaliliśmy na trzy sekundy. Należy w tym miejscu pamiętać, że
maszyny mikroprocesorowe, w tym między innymi komputer, jako
podstawowej jednostki czasu nie używają sekundy (sekunda dla
procesora to kawał czasu), lecz milisekundy i w tych też
jednostkach podajemy wszelkie wartości związane z czasem, a więc
wartość „3 sekundy” podajemy jako 3000 (ms). Po tym czasie
program realizuje kolejne polecenia kodu: w miejsce liczb do
odgadnięcia wyświetla teraz napis zachęcający „Powtórz”,
odblokowuje przycisk „Sprawdź” oraz, na samym końcu, umieszcza
kursor (focus) na polu do wpisywania odpowiedzi, wyręczając nas od
klikania w to miejsce myszką.
3.
Gdy naciśniesz przycisk „Sprawdź”
Poza drobnymi
szczegółami, procedura obsługująca sprawdzenie naszej odpowiedzi
nie różni się od rozwiązania stosowanego w poprzednich grach,
więc nie będziemy jej ponownie opisywać.
W
kolejnych dwóch propozycjach gier i zabaw, przedstawimy podobne
projekty: pierwszy, zamiast liczb będzie oczekiwał od nas
powtórzenia liter, a drugi, powtórzenia zarówno liter, jak i
liczb.
Artykuł pochodzi z mojej książki pt. "Delphi w przykładach dla początkujących". Zapraszam na Stronę książki.
Ciekawe artykuły:
Zapoznaj się z innymi utworami. Przejdź do zakładki Spis artykułów.
- Zagadki logiczne i inne zagadki
- Gry matematyczne w Delphi
- Zabawy rozwijające pamięć w Delphi
- Przechwyt klawiatury w Delphi
- Nauki płynące z mądrości pokoleń
Zapoznaj się z innymi utworami. Przejdź do zakładki Spis artykułów.
Brak komentarzy:
Prześlij komentarz