🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #538

Re: rekurencja a pamiec ?

#538
From: Krzysztof Swiatkowski
Date: Wed, 07 Jan 1998 21:23
40 lines
2765 bytes
On 6 Jan 1998 12:02:10 GMT, in pl.comp.lang.c Piotr Auksztulewicz
<piotras@zeus.polsl.gliwice.pl> wrote:

>Michał Suski <suseu@polbox.com> wrote:
>: moze sie i da, ale to bedzie syzyfowa praca w przypadku przeszukiwania
>: labiryntów dla znalezienia drogi z początku na koniec. ale i tak dzięki
>
>Nieprawda! Algorytm nierekurencyjny jest bardzo prosty! Oczywiście
>musi być to algorytm z powrotami, ale nie mysi być rekurencyjny.
Nie musi, niezbyt oszczędny pamięciowo i czasowo algorytm rozwiązywania
labiryntu, określany mianem "wypalania stepu" polega na stworzeniu tablicy
opisującej labirynt, i przejrzeniu jej "n" razy, a przy każdym przejściu
jeżeli wartość w komórce jest "x" to sprawdzamy sąsiadujące komórki i jeśli
sa puste to wpisujemy do nich wartość "x+1" jeżeli jesteśmy w sąsiedztwie
wyjścia to już koniec (chyba ze szukamy wszystkich dróg a nie najkrótszej).
Teraz można wrócic po "sladach" czyli malejące liczby doprowadzą nas od
wyjscia do wejscia. Warunek stopu to oczywiście brak wartości której
szukamy, wtedy nie ma przejscia.
Mozna to oczywiście jeszcze optymalizować (np dodajac dwie listy punktow w
labiryncie), ale powyższe jest najprostszą wersja.
Oczywiście tablice-labirynt trzeba odpowiednio spreparowac czyli ustalić
niezbedna ilość bajtów do reprezentacji, wartosci zastrzezone na
wejscie,wyjscie(a) i sciany.
Np.: dla labiryntu ekranowego(80x25), wystarczą 2bajty na komórkę i np
0xFFFD na wejscie, 0xFFFE na wyjscie oraz 0xFFFF na ścianę.

Poza tym ten algorytm ma tą zaletę że się ładnie wizualizuje :-).

Hobbit
PS. Nie do końca jestem pewien czy kolejne przejścia określic mianem powrotu
czy iteracji, ale poza tym jest OK :-).

--
-------------------------------------|
Krzysztof Swiatkowski - Lodz, Poland | replying cut bezspam from my address
e-Mail:  hobbit@dom.vr.pl.bezspam    | odpowiadajac usun bezspam z adresu

"Kto sie pozno polozy, wczesnie z lozka wyskoczy
ten od tego glupieje i nie widzi na oczy"
>Gra Endera< O.S.Card
Technical Details
Message-ID: <34b3b199.68163@news.nask.org.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.nask.pl!not-for-mail
References: <01bd189a$8c52aaa0$LocalHost@suseu> <68ol25$qff$1@domek.slodki.domek> <01bd1971$50cc3140$48fa74c3@suseu> <68pdoh$dct$1@domek.slodki.domek> <01bd1a67$beae75a0$08fa74c3@suseu> <68t6g2$cgm@zeus.polsl.gliwice.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.nask.pl!not-for-mail
From: hobbit@dom.vr.pl.bezspam (Krzysztof Swiatkowski)
Newsgroups: pl.comp.lang.c
Subject: Re: rekurencja a pamiec ?
Date: Wed, 07 Jan 1998 22:23:56 +0100
Organization: Bag End
Lines: 40
Message-ID: <34b3b199.68163@news.nask.org.pl>
References: <01bd189a$8c52aaa0$LocalHost@suseu> <68ol25$qff$1@domek.slodki.domek> <01bd1971$50cc3140$48fa74c3@suseu> <68pdoh$dct$1@domek.slodki.domek> <01bd1a67$beae75a0$08fa74c3@suseu> <68t6g2$cgm@zeus.polsl.gliwice.pl>
NNTP-Posting-Host: pmone250.lodz.pdi.net
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit