Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Hajde da napravimo program za lavirint

[es] :: Visual Basic 6 :: Hajde da napravimo program za lavirint

Strane: 1 2

[ Pregleda: 16263 | Odgovora: 29 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

rgdrajko
Beograd

Član broj: 117734
Poruke: 710
91.143.217.*



+3 Profil

icon Hajde da napravimo program za lavirint28.05.2008. u 21:32 - pre 193 meseci
Hajde da napravimo program za lavirint.
Evo algoritma, ako neko ima bolji algoritam neka da predlog:

Lavirint se mora uraditi preko klasa zbog velikih zahteva.

Algoritam je sledeci:
Prvo se odredi koja stranica lavirinta sluzi kao ulaz u lavirint i na kom mestu u toj stranici, koja stranica sluzi kao izlaz i na kom mestu u toj stranici. Prvo se upise put resenja kroz ceo lavirint od ulaza do izlaza, sada se od ulaza prema izlazu dodaje nekoliko sporednih puteva koji idu skoro do izlaza i sa jedne i sa druge strane puta za resenje. Sada se dodaje nekoliko puteva koji idu od izlaza do skoro prema ulazu i sa jedne i sa druge strane od puta za resenje. Od sporednih puteva mogu ici neki kraci putevi da popune praznine na tom mestu. Pri cemu sporedni putevi nikako ne smeju da se ukrstaju sa glavnim putem. Za svako polje se mora definisati u nizu za sve cetiri linije koje sluze kao okviri oko polja: krozj koju liniju u polju je usao koji put, kroz koju liniju u polju je izasao koji put(glavni, sporedni). U polju kroz one linije kroz koje su usli/izasli putevi(presecene linije polja) nema crtica, a gde nisu usli putevi na te linije idu crtice. I to je to momci. Svako polje ima 4 crtice oko polja koje cine kvadrat. To je ceo algoritam. Da li vam je jasno?
rgdrajko
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Hajde da napravimo program za lavirint28.05.2008. u 21:49 - pre 193 meseci
ne nije mi jasno...

kako misli "program za lavirint"? mozda mislis na "program za generisanje lavirinta"? ako je ovo drugo onda znam o cemu se radi a i imam ideju kako bi to moglo (relativno) jednostavno da se uradi... ali aj neka se neko drugi javi da ne radim ja...
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
79.101.66.*



+41 Profil

icon Re: Hajde da napravimo program za lavirint28.05.2008. u 21:54 - pre 193 meseci
Ne znam zašto imam jak osećaj da je naš Rajko to već uradio, pa nas izaziva ...
 
Odgovor na temu

rgdrajko
Beograd

Član broj: 117734
Poruke: 710
91.143.217.*



+3 Profil

icon Re: Hajde da napravimo program za lavirint28.05.2008. u 21:56 - pre 193 meseci
Da mislim na "program za generisanje lavirinta" ali ne slucajnog generisanja lavirinta jer to nije to, taj lavirint ispada bezveze, mozda nikada nisi video lavirinte u novinama koje sam crtao sa rapidografom. Dacu neki skenirani lavirint sada nemam sliku tog lavirinta.
rgdrajko
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


+1 Profil

icon Re: Hajde da napravimo program za lavirint28.05.2008. u 21:59 - pre 193 meseci
Pa valjda je dobro slucajno generisanje lavirinta? Ako sam dobro shvatio, treba u odnosu na odredjenu putanju da iscrta lavirint........to bi trebalo slucajno generisanje...
 
Odgovor na temu

rgdrajko
Beograd

Član broj: 117734
Poruke: 710
91.143.217.*



+3 Profil

icon Re: Hajde da napravimo program za lavirint28.05.2008. u 22:03 - pre 193 meseci
Pa po nekoj teoriji, koja je veoma pametna i nisam je ja izmislio, slucajnost ne postoji, postoji samo namera. Prema tome moras ograniciti tu slucajnost sa nekom namerom, sa nekim usmerenjem, inace se obicno dobija glupost, to sam odavno shatio, jer slucajno generisanje skoro nikada ne daje dobar rezultat.
rgdrajko
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: Hajde da napravimo program za lavirint28.05.2008. u 22:54 - pre 193 meseci
U pravu je Rajko (jeste, jeste, rekao sam to), ukoliko bi se random generisalo resavanje bi bilo suvise lako.

Citat:
goranvuc: Ne znam zašto imam jak osećaj da je naš Rajko to već uradio, pa nas izaziva ...

Ili mu treba za nesto
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Hajde da napravimo program za lavirint28.05.2008. u 23:06 - pre 193 meseci
shad nisam mislio bas random vec da program u svakom trenutku (za odredjeni deo lavirinta) ima nekoliko opcija i da izbor vrsi nasumicno...

evo npr ovakav algoritam: http://www.freebasic.net/forum/viewtopic.php?t=3713
Code:

Start Stuff
1. Set-up maxe propeties As constants
2. Draw grid For the maze
3. Define types
4. Create variable types

Sub initmaze()
1. Set default info
2. Randomize starting square

Sub savemaze()
1. Open file
2. Write Data To file
3. Close file

Sub move(cellx,celly)
cellx And celly are coordinates For the current maze square
1. Create variable types
2. Check For possible directions
3. Pick Random direction
4. Calculate coordinates of wall To be broken If the wall Is there
5. Draw over the wall
6. Backtrack 1 cell If no direction Is possible
7. Change direction If no direction Is possible
8. Add the New cell's coordinates to the route array

Main Program
1. Call initmaze() To initalize the variables And arrays
2. A cheap counter For the production of the maze
3. Erase the marker
4. Call move(cellx,celly)
5. Exit For...next Loop
6. Call savemaze()
7. Wait For a Key press

 
Odgovor na temu

rgdrajko
Beograd

Član broj: 117734
Poruke: 710
91.143.217.*



+3 Profil

icon Re: Hajde da napravimo program za lavirint29.05.2008. u 16:35 - pre 193 meseci
Citat:
Shadowed: ..Ili mu treba za nesto ;)


Ne treba mi.

@ GoranVuc
Osecaj nikada ne vara, salim se naravno. Nisam uradio program za lavirint. Prepravio sam jedan strani program.

Citat:
Aleksandar Ružičić: shad nisam mislio bas random vec da program u svakom trenutku (za odredjeni deo lavirinta) ima nekoliko opcija i da izbor vrsi nasumicno...


Apsolutno si u pravu i hvala za link.

Evo primer Lavirinta.



[Ovu poruku je menjao rgdrajko dana 29.05.2008. u 22:24 GMT+1]
rgdrajko
Prikačeni fajlovi
 
Odgovor na temu

rgdrajko
Beograd

Član broj: 117734
Poruke: 710
91.143.217.*



+3 Profil

icon Re: Hajde da napravimo program za lavirint29.05.2008. u 21:25 - pre 193 meseci
Gornji primer lavirinta je los, cilj je napraviti bolji algoritam.
rgdrajko
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: Hajde da napravimo program za lavirint29.05.2008. u 21:53 - pre 193 meseci
Mislim da bi trebalo precizno definisati sta se smatra dobrim a sta losim da bi se uopste moglo pristupiti problemu.
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.113.*



+7 Profil

icon Re: Hajde da napravimo program za lavirint29.05.2008. u 22:17 - pre 193 meseci
Ako je ovaj los kakvi su ti dobri :) ... stavi neku sliku ...
By the way ima i izreka sve sto je jednostavno je genijalno ... al ovde ocigledno ne vazi :)
U ovom lavirintu gore je fora da uvek kad mozes da biras skrenes levo (ako se krene iz donjeg desnog ugla) osim u zoni ulaza i izlaza , gde je obnuto.
Mozda je i to slucajno a mozda i postoji neka namera :)
poz
 
Odgovor na temu

rgdrajko
Beograd

Član broj: 117734
Poruke: 710
91.143.217.*



+3 Profil

icon Re: Hajde da napravimo program za lavirint29.05.2008. u 22:34 - pre 193 meseci
Citat:
Shadowed: Mislim da bi trebalo precizno definisati sta se smatra dobrim a sta losim da bi se uopste moglo pristupiti problemu.


Ok sutra cu da skeniram jedan dobar koji sam nacrtao rapidografom.

Citat:
Eurora3D Team: U ovom lavirintu gore je fora da uvek kad mozes da biras skrenes levo (ako se krene iz donjeg desnog ugla) osim u zoni ulaza i izlaza , gde je obnuto.
Mozda je i to slucajno a mozda i postoji neka namera :)
poz


U pravu si, nisam to primetio.
rgdrajko
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.113.*



+7 Profil

icon Re: Hajde da napravimo program za lavirint29.05.2008. u 22:35 - pre 193 meseci
Da ti napisem kako bi ja ovo radio.
Prvo mozemo da primetimo da je polje kvadratno i da su putanje iste sirine. Sto znaci da ovo mozemo da graficki pretstavimo kao mrezu (ili matricu , 2d niz).
Ja bi napravio formu sa kontrolama (moze button) sirine i visine kao sto je putanja , gde bi onaj koji koristi program mogao sam da oznaci putanju. Znaci caka je da mi smislimo put a program moze da izlupa random linije sa jednim jedinim uslovom , da nigde ne presece putanju.
Neznam kako bi ovo izgledalo kad se uradi al mi ja ovakav pristup nekako najprostiji

Da i normalno treba da iscrta okvir ...
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.113.*



+7 Profil

icon Re: Hajde da napravimo program za lavirint29.05.2008. u 22:53 - pre 193 meseci
Da dodam :)
Onaj koji unosi putanju moze da unese i par laznih putanja da lavirint ne izgleda totalno haoticno. Mislim da bi to i otezalo resavanje.
Ovo su neke moje ideje sa programerske tacke gledista .... a u ovu tematiku se uopste ne razumem :)
 
Odgovor na temu

rgdrajko
Beograd

Član broj: 117734
Poruke: 710
91.143.217.*



+3 Profil

icon Re: Hajde da napravimo program za lavirint29.05.2008. u 23:04 - pre 193 meseci
Evo kako izgleda dobar lavirint, rukom iscrtan.



rgdrajko
Prikačeni fajlovi
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: Hajde da napravimo program za lavirint29.05.2008. u 23:34 - pre 193 meseci
OK, to je primer, al' mislio sam na definisanje toga sta znaci dobar a sta los, tj. izreceno recima, kao pravila.
 
Odgovor na temu

rgdrajko
Beograd

Član broj: 117734
Poruke: 710
91.143.217.*



+3 Profil

icon Re: Hajde da napravimo program za lavirint30.05.2008. u 01:01 - pre 193 meseci
Pa ovako: svaki dobar lavirint ima plan kako ce putevi ici po lavirintu , pri cemu mora da ima sto manje slepih puteva od 1 polja, kao sto ima gornji lavirint(lavirint iscrtan rukom nema ni jedan slepi put od 1 polja), mora da se snalazi i prilagodjava situaciji pri kreiranju puteva kroz lavirint. Znaci uz glavni put ili resenje ima vise sporednih puteva koji pokusavaju da zbune resavaca i da mu otezaju pronalazak resenja, ako su sporedni putevi providni, resavac veoma lako pronadje put kroz lavirint. Znaci u 2d matrici se definisu i zapisuju putevi tj. kroz koje su "kapije" u kvadratnom polju usli putevi ili put. Iscrtavanje je posle toga veoma lako sa grafickom komandom Line iscrtati lavirint, po potrebi i zelji se ovakav lavirint veoma lako moze pretvoriti u igru.
rgdrajko
 
Odgovor na temu

Lord_Nenad
Lord_Nenad
Zvornik

Član broj: 143541
Poruke: 170
89.111.229.*



+8 Profil

icon Re: Hajde da napravimo program za lavirint30.05.2008. u 19:37 - pre 193 meseci
Pa bolji je onaj gore lavirint... Ako se krene iz IZLAZA ima vise razlicitih mogucnosti, dok kod ovog dole ima samo jedna... A i put se lako uocava bez razmisljanja ( ne mislim na to sto je sad iscrtan... ).

Ovo gore sa random je bilo bolje, a ako hotjesh da nema PUTA OD JEDNOG POLJA jednostavno to definishi da proveri koliko polja ima put, i ako ima 1 da ga ukloni, tj da prodje neki drugi kroz to polje...

Definishi 2 GLAVNA puta koja ce se RACHVATI, koja ce kretati iz ULAZA i IZLAZA ( kako bi bio lavirint i ako se krene iz IZLAZA x) ).
Kad put bude "krenuo" nek se krecu oba u isto vreme ( kako bi se "sreli" priblizno kod sredine ( mozes definisati tachku SPAJANJA, tj mesto gde ce se spojiti ) ).
Nek bude random da odluci da li ce ici levo, desno ili pravo.
Stavi da preko random odlucuje da li ce se racvati ili ne ( ovde mozes dodati da proveri da li ima samo 1 polje ili vise ).

Moze se osmisliti i kontrolisanje TEZINE lavirinta tako sto ce se smanjiti sansa za racvanjem, kako bi bilo manje razlicitih puteva, ili da se poveca sansa da put ne skrece, tj da ima vecu sansu da ide pravo ( 1:1:2 = Levo:Desno:Pravo ).


To je moje misljenje... Nadam se da sam pomogao. Pozzz
 
Odgovor na temu

rgdrajko
Beograd

Član broj: 117734
Poruke: 710
91.143.217.*



+3 Profil

icon Re: Hajde da napravimo program za lavirint30.05.2008. u 21:54 - pre 193 meseci
Slazem se sa svim sto si naveo. Mora postojati logicki zakljucak u kom ce smeru ici, tj. u smeru prema izlazu a mora postojati i random kretanje. Najbolje je preko random da utvrdjuje da li ce uzeti logicki zakljucak koji ga uvek vodi u smeru prema izlazu ili ce iskoristiti random(npr 0=random kretanje, 1=logicko kretanje). Sto se vise priblizava izlazu sve manje koristiti opciju random(dodati i ovo ogranicenje).
rgdrajko
 
Odgovor na temu

[es] :: Visual Basic 6 :: Hajde da napravimo program za lavirint

Strane: 1 2

[ Pregleda: 16263 | Odgovora: 29 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.