Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Prosta gra "kulki"
Forum PHP.pl > Forum > PHP
Koperfild
Witam,
zabrałem się parę dni temu za próbę wymyślenia struktury gry, powszechnie nazywanej "kulki". Nie będe jej opisywał, bo wydaje mi się że każdy ją zna smile.gif
I zatrzymałem się na problemie którego nie mogę sam rozwiązać. Mianowicie jak powinno przebiegać sprawdzanie czy w poziomie, pionie, lub ukosie nie ustawiły się akurat 4 kulki tego samego koloru? Myślałem o nieskończonej pętli, która będzie sprawdzała wszystkie pola obok przestawionej kulki, i jeżeli nie natrafi na taką samą to przerywa się instrukcją break;, jednak nie jest to zbyt dobre rozwiązanie, bo przecież może być sytuacja gdy wstawiamy kulkę w środek gotowego już rzędu i wtedy z żadnej strony nie będzie po 4.
maryaan
algorytm nie bedzie trudny, mozna np tak:
przeszukujesz komorki wierszami z gory na dol, od lewej prawej
jesli kolumna nie jest pusta sprawdzasz rekurencyjnie
- sasiadujace pola w prawo
- sasiadujace pola na ukos (prawy dolny rog)
- sasiadujace pola na ukos (lewy dolny rog) //dopisane
- sasiadujace pola w dol od kulki
jesli ktores z tych sprawdzen da wynik >= 4 to kasujesz dany rzad, nie wiem jak w kulkach ma sie sprawa "podwojnych" rzedow, ktory zostanie skasowany jesli postawiona kulka tworzy jednoczesnie rzad pionowy i poziomy, ale to juz kosmetyka

stan planszy musisz sprawdzic po kazdej zmianie na niej a nie tylko po przestwieniu kulki (kulki dolaczane z automatu tez moga spowodowac ulozenie rzedu czterch takich samych)

a ten, w jaki sposob chcesz zorganizowac komunikacje z serwerem?
Kisiol_Ent
http://img91.imageshack.us/img91/491/ballsat2.jpg
dr_bonzo
Kulki, czyli po ustawieniu min 5ciu kulek tego samego koloru w poziomie, pionie i ukosie one znikaja, tak? I gra na jednego gracza?

OMG do 12ej nie zasnales? tongue.gif zartuje

Chcesz wykryc czy dolozenie kulki utworzy lancuch dlugosci min 5ciu kulek ktore potem nalezy usunac? Czy po prostu chcesz nzalezc 4kulkowe ciagki kulek?

Drugiego przypadku nie omawiam.
W przypadku pierwszym: ciag min 5ciu kulek powstanie dopiero wtedy gdy przedstawisz, dolozysz kulke na plansze. I Gdy ten ciag powstanie ZAWIERA on ta kulke (to chyba jest jasne). No i teraz szukasz we wszystkich kierunkach od tej kulki kulek w tym samym kolorze i odpowiednio zliczasz, np w gore byly dwie, i dwie na dole, piata w srodku i masz linie.
ActivePlayer
najłatwiej zrobic to tak:


przelatujesz pętlą każde pole na planszy

jesli jest tam kulka, to

sprawdzasz dwa pola po lewej i dwa po prawej. jesli maja taki sam kolor to masz ciąg.

sprawdzasz dwa pola w góre, i dwa pola w dol, jesli maja taki sam kolor to masz ciag

analogicznie sprawdzasz skosy (juz chyba wymyslisz jak:P), i to masz caly algorytm:)

edit:
napisalem algorytm dla 5 kulek, ale analogicznie mozesz sprawdzac po 1 z lewej, a 2 pola z prawej, tak samo zadziala.
Kisiol_Ent
ActivePlayer --> twój algorytm nie stety nie zadziała, bo moze byc sytuacja ze beda
4 kulki + dziura + nastepne 4 kulki i jak sie w tą dziurę włoży kulke to bedzie razem 9 kulek i wtedy
by zaznaczylo tylko 5, wiec kicha.
Tak poza tym piszecie to samo co juz napisalem, po co nabijacie posty?
maryaan
Kisiol_Ent tylko ze Twoja wersja jest dla dwoch graczy, a kulki to gra w ktorej pojawiaja sie roznokolorowe pilki na planszy i trzeba je ustawiac w rzedach, ale robi to jeden gracz. Juz pomijam fakt ze rozszyfrowanie tego tekstu zajmuje dobre kilka minut.

do mojego pierwszego posta trzeba jeszcze dopisac sprawdzanie w kierunku dolnego lewego rogu, co zaraz zrobie. Sa tylko cztery mozliwosci ulozenia kulek na planszy i trzeba sprawdzic wszystkie, a ja jedna pominalem
Kisiol_Ent
Aha, bo ja sie nie znam na tych kulkach. Myslalem ze to gra multiplayer...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.