Wypełnianie

0

Dzisiaj w szkole nudziłem się i postanowiłem zrobić gierkę w stylu sapera :). Niby żaden kłopot, ale pojawił się problem przy odkrywaniu pól wokół klikniętego pustego pola. Pierwsze, co mi przyszło do głowy, to rekurencyjne odkrywanie wszystkich (jesli puste) 8 punktów wokół klikniętego punktu. Przepełnienie stosu... Podejście nr 2: przyszedłem do domu i znalazłem w necie ten mój algorytm, ale okazało się, że wystarczą 4 punkty wokół klikniętego. Nic to nie zmienia, przepełnienie stosu. Podejście nr 3: znalazłem algorytm Smitha i zaimplementowałem go w delphi (być może trochę nieudolnie). Skutek: po kliknięciu pustego pola program przestaje odpowiadać, a cały komp działa z prędkością ciągnika rolniczego na wolnych obrotach. Czy ostatecznie działa, tyle, że wolno, nie wiem, nie mam tyle cierpliwości, żeby czekać 5 minut na odsłonięcie pól :). Szukam więc jakiegoś dobrego algorytmu na wypełnianie, może być także jakas normalna implementacja tego Smitha, jeśli to w rzeczywistości działa nieźle :)

// Dopisane
No tak, tamta gra działa, ale... ten programista, to chyba sobie sporo wypił przed pisaniem. Nazwy zmiennych to jakieś skróty, które nie wiadomo od czego powstały, w ogóle nie wiadomo, co gdzie jest... [stuk] Męczę się z tym dalej, ale gdyby ktoś miał coś mniej zagmatwanego, to proszę o link.

// Rzeczywiście, nie mogę coś tego znaleźć. Szukałem dokładnie w artykułach i w źródłach. Jakbyś mógł, to wyślij pocztą (mail w profilu), albo rzuć tutaj linkiem.

0

Nie wgłebiałęm sie w treśc tego kodu, w kazdym razie robi on to co chcesz http://www.delphi.is.net.pl/delphisource/gry/gra_Saper.rar. :-)

0

Napisałem kiedyś grę w kulki, tam jest wykorzystany algorytm wypełniania do sprawdzenia, czy droga z punktu do punktu istnieje; po lekkich modyfikacjach algorytm będzie zaznaczać w saperze pola, które mogą być odkryte.
Gra znajduje się gdzieś w dziale tp, a jeśli nie znajdziesz, to mogę podesłać na @.

1 użytkowników online, w tym zalogowanych: 0, gości: 1