![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Przyjaciele php.pl Postów: 2 196 Pomógł: 2 Dołączył: 17.01.2004 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Witam, pamięta ktoś z Was może taka mała, stara gierkę (nie komputerową (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ), która była zbudowana z 15 ponumerowanych kolejno kwadracików na planszy 4 na 4 i chodziło w niej o ułożenie tych kwadracików w kolejności ruszając je tylko po jednym pustym polu? Otóż napisałem implementacje tej gry w php i wypadałoby wiedzieć chociaż jak to się zwie (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Może działający skrypt przypomni komuś o jaka grę chodzi...
http://www.crash.gaa.pl/gra.php Ten post edytował crashu 22.06.2005, 12:24:16 |
|
|
![]() |
![]()
Post
#2
|
|
Administrator planeta/IRC Grupa: Przyjaciele php.pl Postów: 385 Pomógł: 0 Dołączył: 19.04.2003 Skąd: Zabrze Ostrzeżenie: (0%) ![]() ![]() |
Jeśli dobrze rozumiem to nasze algorytmy są identyczne. U mnie też szukam sąsiadujących z pustą, też wybieram jedną z nich, a przesunięcie to poprostu zamiana pustej z wybraną. Więc chyba czegoś nie zrozumiałem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
EDIT: teraz rozumiem, chodzi o realizacje znajdowania sąsiadujących. U mnie jest niepotrzebna pętla, już sie biore za poprawe tego i zobacze jak to będzie wtedy śmigało. EDIT2: została już tylko jedna pętla w klasie Puzzle, do renderowania. Znajdowanie pustej komórki jest niepotrzebne, przecież można sobie zapisywać gdzie ona jest po każdym przesunięciu. A znajdywanie rozwiązałem tak jak powiedziałeś, zapisując sąsiadów tak jak w isMoveable(), z tym że z drobnym sprwadzeniem czy nie wychodze poza plansze (jednowarunkowe ify). I teraz w zasadzie przyglądając się procesowi przesuwania (render() + alert() - wygląda jak animacja (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) ) zauważyłem że trzeba jeszcze zrobić zabezpieczenie przed cofaniem się przesunięć. To przez to nawet przy dużej ilości iteracji plansza potrafi być niewymieszana. EDIT3: W sumie to niech sie cofa, efekt jest ten sam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Tak czy siak trzeba zrobić pow(size, 4) powtórzeń (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ale teraz to już śmiga tak szybko, że nie ma sie o co martwić (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Na FTP są ostateczne poprawki do metody shuffle(). Uff. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 08:38 |