Ozivite forum!

7

Ozivite forum!

offline
  • Pridružio: 28 Jun 2004
  • Poruke: 990
  • Gde živiš: Kucura

Da pravimo lavirint iz novina, ova slika sto je rgdrajko prikacio. Necemo raditi 3D, radimo ovo iz pricje perspektive kako je LittleHacker napisao. Takodje radimo u VB6-ici. I molim vas pokusajte razmisliti o algoritmu kako iscrtati stazu.

Druga mogucnost je da napravimo svoje staze koje cemo kasnije ucitavati. To je laksa varijanta... Ajde ovi koji hoce da rade neka se opredele koju cemo varijantu uzeti da radimo.

* Ostali koji rade u GameMaker-u ili VB.Netu nek sebi otvore novu temu da ne bi ovde pretrpavali bezpotrebno!



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Uvek mozete da napravite format za svoje "staze" pa da posle napravite generator "staza". Na taj nacin mozete imati 2 tima. Jedan koji radi na programi za generisanje lavirinta, a jedan da radi na programu koji ce igrac videti.



offline
  • Pridružio: 13 Apr 2007
  • Poruke: 452
  • Gde živiš: Beograd

Tako je mozda i najlakse...Ali bolje da ne bude dva tima...Jer i jedan i drugi onda moraju da znaju svaki detalj kako izgleda ta staza, kako se ustvari pravi ispod haube, da bi mogli da je ucitaju u igru...

offline
  • Nemanja
  • Web Designer and Developer
  • Pridružio: 24 Jan 2007
  • Poruke: 266

pa kako hocete, ako je neko dobar u programiranju da se staza "sama" napravi, onda neka napise algoritam za nju Very Happy.

offline
  • Pridružio: 14 Feb 2008
  • Poruke: 12391

Nema nista od 3D lavirinta napravio sam samo 2 zida u jednoj mapi i izaslo je 8mb Sad. Poslao sam screenshoot Litle Hackeru.
Ja cu da uradim sa playerom.
@Litle Hacker
U game makeru ti ne treba engine, fora je samo u objetkima i kodu. Very Happy Nije los ovaj 3D lavirint ali Sad. Tacno je da mora da se radi u vb6 3d sa OpenGL i DirectX ali to je puno tesko samo da naprvite 2 trougla preko OpenGl-a treba puno da se kuca. Radicemo ipak 2d:)

Dopuna: 01 Jun 2008 21:37

@ BiserX Od ovog trenutka necu pominjati Game Maker i 3D Very Happy

offline
  • drejk 
  • Ugledni građanin
  • Pridružio: 31 Mar 2005
  • Poruke: 448
  • Gde živiš: Novi Beograd

Sto se tice algortima...

Ne znam kako bi prvo poceli.

Algoritam koji pravi "pravu" putanju, pa drugi algoritam koji pravi corsokake, ili nekako trece.

Mislim da ce veci problem biti sa algoritmom za corsokake.

Sto se tice "prave" putanje ovako mi nesto iz glave pada napamet:

1. nasumicno se postavljaju ulaz i izlaz iz lavirinta
2. putanja se kreira od ulaza (jelte), nasumicno odredjuje susednu "prostoriju"
3. susedna prostorija ne sme biti prethodna niti kraj mape
4. algoritam tako "luta" po mapi dok ne dodje do izlaza

jel ovo ima smisla?

Dajte ko ima vise iskustva nek pomogne sa logikom.

Za corsokake, blage ideje nemam... nesto slicno kao ovo gore, samo nikako ne sme da se susretne sa ovim putem niti da dodje do izlaza.

od 1.-4. mi ne deluje preterano tesko, ali corsokaci .. ne pada mi napamet.

Odredili smo platformu (VB6), odredili smo tip (2d lavirint, sa samo jednim pravim resenjem).

Sto se tice igraca, trebao bi da moze da se krece levo-desno, gore-dole. ja jos zamisljam (kao sto pisah ranije) da ima ograniceno vidno polje.

Naravno bio bi ubacen neki tajmer, pa high score, pa ovo pa ono...

Al da krenemo mi od osnova Smile

Ajmo sad na konkretne stvari...

Poz svima

offline
  • Pridružio: 14 Feb 2008
  • Poruke: 12391

Ljudi zasto da komplikujemo stvar kad moze da bude prosta? Ajde da napravimo obican lavirint i to je super za pocetak. A posle mozemo da se vratimo na projekat i da ga usavrsimo. Ajde prvo od prostog da krenemo, ovako nikuda necemo stici.

offline
  • Pridružio: 28 Jun 2004
  • Poruke: 990
  • Gde živiš: Kucura

@drejk
Mislim da je bolje da radimo sa nasim mapama koje cemo mi praviti. Mnogo je zeznuto uraditi ove algoritme sto si naveo Sad

Sutra kad se vrnem iz skole napisacu kako sam zamislio podelu projekta pa onda glasajte ko ce koji deo da uzme Smile

offline
  • Pridružio: 06 Maj 2007
  • Poruke: 241
  • Gde živiš: Beograd

Pa algoritam je veoma prost. Veoma je tesko uraditi algoritam za celu tabelu, posebno ako je velika. Zato podelimo tabelu na delove, ali ne na napred definisane delove jer bi to bilo jednostavno i skoro uvek isto kretanje. Znaci ovako u odnosu na trenutno aktivno polje u mrezi tabele na koje smo trenutno stali uzima se npr 3(4 ili 5 slucajno) polja udesno i 3 polja nadole, znaci 3x3 polja(ako je kretanje puta udesno na dole) i onda se za tih 9 polja(3x3) pri kretanju(koje je delom slucajno a delom namerno-da bismo stigli na desnu stranu, da idemo prema izlazu, a usput slucajno skrecemo za jednopolje u sva 4 pravca. Takodje od tog aktivnog polja na koje smo stali trenutno mozemo uzeti 3 polja gore i 3 polja levo, sve kombinacije su u opticaju. Ovo takodje da se slucajno dobiva. Znaci kretanje je uvek za jedno polje levo, desno gore dole u trenutno definisanoj matrici 3x3 polja, 4x4 polja i 5x5 polja. Pri tom kretanju proveravamo u memoriji u 2d nizu(red, kolona) da li je to polje (na koje treba da stanemo) slobodno ili zauzeto od nekog puta. Evo dao sam i grafiki prikaz algoritma.
Sa X je oznaceno trenutno aktivno polje.


offline
  • Pridružio: 25 Maj 2007
  • Poruke: 114
  • Gde živiš: Novi Sad, Sombor

Evo da se i ja prikljucim izradi lavirinta.
Za pocetak sam smislio algoritam i napisao program za kreiranje "pravog" puta.
Sto se tice laznih puteva, tu tek treba da se smisli algoritam, ali mislim da moze da se upotrebi slican algoritam kao ovaj.


Ovako izgleda program:


A evo ga i kod:

mycity.rs/must-login.png

Program radi na principu rekurzivne funkcije i zato moze da generise samo lavirinte velicine 2x2, 4x4, 8x8, 16x16 .......2^n x 2^n gde je n ograniceno memorijom racunara.

Primer algoritma: treba napraviti lavirint velicine 4x4 (NxN)

1. Odabere se ulaz i izlaz iz lavirinta.




2. Tabela se deli na 4 dela (N/2 x N/2).


3. Odaberemo put kroz ta 4 dela (nije uvek moguce kroz sva 4, u ovom slucaju samo kroz 3 dela). Uvek, osim u jednom slucaju( kada su ulaz i izlaz na istom polju) postoje 2 varijante puta.

prva


druga

4. U ovom slucaju je ulaz u 1. deo ujedno i ulaz u lavirint, a izlaz iz 3. dela izlaz iz lavirinta. Preostaje nam da pronadjemo izlaz iz 1. i 2. dela kao i ulaz u 2. i 3. deo. Posto se 1. i 2. deo ( 2. i 3. deo) granice samo sa dva polja, koristimo Random fu-ju za odredjivanje ulaza i izlaza.

Primer: ( postoje 4 kombinacije)


5. Sad za svaki od delova primenimo postupak pod tackom 2.

Dve od mogucih 8 kombinacija.


Ukupno postoji (2^broj delova) kombinacija.

Prilikom pozivanja rekurzivne funkcije salju se samo koordinate , ulaz i izlaz iz lavirinta (ili nekog dela lavirinta) kao i informacija o dubini rekurzije, tj ne vise od 30-tak bajtova.
Npr: za tabelu 64x64, dubina rekurzije iznosi 6.
U najgorem slucaju ( da putanja uvek prolazi kroz sva 4 polja) zauzece memorije iznosi 30 x 4^6 < 120 Kb

Ko je trenutno na forumu
 

Ukupno su 1129 korisnika na forumu :: 36 registrovanih, 7 sakrivenih i 1086 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., Bobrock1, BORUTUS, cavatina, comi_pfc, crnitrn, darionis, dejina811, Dimitrise93, djboj, FileFinder, galerija, Litostroton, Mcdado, mercedesamg, milan.vukovic, milenko crazy north, Milos82, milutin134, Miskohd, mustangkg, nemkea71, panzerwaffe, procesor, rodoljub, Sir Budimir, Sirius, SlaKoj, Srle993, stegonosa, suton, tomigun, Trpe Grozni, wizzardone, |_MeD_|, 1107