Neuron – prosta gra logiczna

Chciałbym dzisiaj zaprezentować bardzo prostą i ciekawą grę. Rozwija ona pamięć i spostrzegawczość, zasady gry są bardzo proste. Gra składa się z planszy podzielonej na kwadraty, każdy kwadrat może być błędny lub poprawny. Należy zapamiętać, gdzie ułożone są poprawne kwadraciki i je wszystkie odsłonić. Gra do przetestowania dostępna do pobrania:

neuron

 

 

 

gra do przetestowania =>  neuron_visualmonsters-cba-pl

 

Projekt z tutoriala poniżej dostępny tutaj => neuron_visualmonsters-cba-pl

 

Tylko kod programu =>  neuron_visualmonsters-cba-pl

 

Obrazki użyte w projekcie => obrazekblad

 

 

 

Nasza gra będzie trochę mniej złożona, zaczynamy od dodania elementów do głównej formy gry:

neuron3

Rodzaj elementu Nazwa elementu ustawienia
Form Form1 Name: Form1
Text: Neuron VisualMonsters.cba.pl
Size: 499; 594
Panel Panel_glowny Name: Panel_glowny
Size: 459; 472
Location: 12; 12
BackColor: White
Anchor: Top, Bottom, Left, Right
Label Label1 Name: Label1
Text: Pozostało do odkrycia :
Location: 12; 498
Label Label2 Name: Label2
Text: 0/0
Location: 137; 498
Label Label3 Name: Label3
Text: Punkty:
Location: 271; 498
Label Label4 Name: Label4
Text: 0
Location: 320; 498

 

 

 

 

 

Główny silnik gry uruchamiał będzie się wraz z jej startem w Form_load, to on będzie generował planszę i dodawał główne elementy do listy. To w nim będzie zawarty poziom trudności i ilość punktów, jakie będzie można zdobyć, więc jego zrozumienie jest najważniejsze.

Program najpierw sprawdza, czy wybrany rozmiar kwadratów połączona z wielkością gry zmieści się w głównym oknie gry, bez sensu byłaby gra, w której nie widać większości pól. Jeśli plansza nie mieści się w głównym oknie, wielkość kwadracików zostanie zmieniona. Nie ważne czy kwadraciki nie zmieszczą się na szerokość, czy na wysokość, pętla ta dopasuje tak nasze kwadraciki, że będą się mieścić:

Wizualnie wygląda to tak:

neuron4

Formuła, nie jest bardzo skomplikowany, reszta elementów opisana jest w kodzie, a ciekawsze rzeczy będę jeszcze tłumaczył. Odblokowujemy teraz kolejny element generujący tym razem losowy dobór obrazków błędnych i poprawnych:

Określamy w nim ile ma się znajdować poprawnych obrazków.

Lista, która została stworzona na początku (listaboolean), przechowuje tylko informacje true/false kod wybiera nam losowo „iloscPoprawnychPol” i kończy pętle gdy „iloscznaczkow = iloscPoprawnychPol” najpierw lista wypełniana jest elementami false, a następnie losowo bez powtórzeń losujemy liczby i zmieniamy wybrane elementy listy na True. Na końcu wyświetlamy, ile jest pól do odkrycia w label2. Odblokujemy  teraz:

W pętli tworzącej kwadraty. Doda ona do każdego naszego kwadratu formułę uruchamianą po jego kliknięciu. Ta formuła to:

Timer1 posłużą nam do wydłużenia czasu wyświetlania elementów, aby użytkownik mógł zdążyć, zapamiętać gdzie leży niepoprawny obrazek i które obrazki znikneły. Jeśli go nie użyjemy, to po kliknięciu nie pojawi się obrazek. Dlatego użyjemy zmiennej „KontrolerKlikniecia” która będzie blokowała możliwość kliknięcia, na czas działania Timera1 (użytkownik mógłby, kliknąć kilka pól co by spowodowało błąd gry). Timer2 będzie zmniejszał ilość punktów do zdobycia. Po kliknięciu, na kwadracik formuła sprawdza jego położenie w liście „ListaKwadratow” a następnie w „listaboolean” sprawdza, czy na określonym indeksie jest True, czy False. Jeśli True, wtedy doda nasz kwadrat do listy „ListaZlapanychObrazkow” i będziemy mogli go ukryć na późniejszym etapie gry. Jeśli obrazek jest poprawny, pętla pokażę, ile jest odkrytych obrazków i sprawdzi czy to już koniec gry. Jeśli to koniec gry, plansza zostanie odkryta czas zatrzymany a blokada włączona. Pętla:

Sprawdza, czy Timer2 jest włączony. Jeśli nie to go uruchamia (oficjale rozpoczęcie gry), to on będzie liczył nam punkty. Nasza form, ma już aktywne kwadraty:

neuron5

Uwaga, jeśli trafimy na czerwony krzyżyk, to gra się nam zablokuje, więc się nie przestraszcie. Zajmiemy się teraz Timerem2, tak jak było już mówione, zlicza on nam punkty. Jego szybkość ustawiona jest na jedną sekundę. W każdej sekundzie ilość punktów do zdobycia będzie maleć o jeden. Ilość punktów do zdobycia powinna być zależna od poziomu rozgrywki.

Oczywiście czas zmniejszania ilości punktów można zmienić tutaj:

Wielkość Intervalu na poziomie 1000 oznacza jedną sekundę (instrukcja wykonywana jest co sekundę). Ostatnim elementem gry jest Timer1:

Dlaczego zatrzymałem timer zaraz po jego uruchomieniu, otóż nasza formuła najpierw poczeka 200 milisekund a następnie, wykona instrukcje w sobie zawartą. Jeśli zwiększymy wartość w:

do 500 wtedy program odsłoni obrazek, poczeka pół sekundy, a następnie wykona instrukcje. Na kolejnym etapie najpierw nasza formuła musi kliknięty obrazek zasłonić, użytkownik już wie, co się pod naszym panelem kryje, gdyż daliśmy mu, pół sekundy na zobaczenie krzyżyka i można go już zasłonić. Następna pętla zasłania dodatkowo odkryte kwadraty (tak jak w zasadach gry). Tutaj następuje dylemat, ponieważ mamy dwie sytuacje, pierwsza to taka, że złapanych obrazków jest więcej niż obrazków do zasłonięcia, a druga to obrazków złapanych jest mniej. W pierwszej sytuacji program losowo wybiera obrazki do zasłonięcia i usuwa je z listy, a w drugiej zasłania wszystkie odsłonięte elementy.  To by było na tyle, jak by były jakieś pytania, to proszę pisać.

neuron6

 

 

 

 

Permalink do tego artykułu: https://visualmonsters.cba.pl/neuron-prosta-logiczna/

Dodaj komentarz

Twój adres email nie będzie publikowany.