Welcome, Guest. Please login or register.


Author Topic: Általános BASIC Kérdések (Read 429662 times)

Online szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9928
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #150 on: 2011.November.16. 13:37:46 »
Volt egy program, ami véletlenszerûen labirintust rajzolt a karakteres képernyõn, majd megpróbált egy egy karakternyi krapekot átvezetni a labirintuson. Volt, hogy elszúrta a labirintus tervezését a program és nem vezetett út a kijárathoz, és volt, amikor kijutott a krapek. Nem tudja valaki, hol van ez a program? Valamelyik EP-s könyvben lehetett, onnan kellett bepötyögni a basic programot.
Nem tudom, megoldható lenne-e valahogy, hogy csak "járható" labirintust tervezzen a gép, és aztán az irányítást átadja a játékosnak.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Általános BASIC Kérdések
« Reply #151 on: 2011.November.16. 17:32:54 »
Nem tudom, megoldható lenne-e valahogy, hogy csak "járható" labirintust tervezzen a gép, és aztán az irányítást átadja a játékosnak.

Nem biztos, hogy jol emlekszek, de volt valami olyan algoritmus, hogy fuggolegesen veletlenszeru helyre generalsz egy falat (vonalat), majd vizszintesen, es igy tovabb: a trukk az, hogy ahol talalkozik ket fal, ott egy atjarot kell krealni. A sorrend veletlenszerusitese teszi mindig massa a labirintust. Na persze ket falat nem er egymas melle rakni: mindig kell kozotte pontosan egy hely. Valami ilyesmi volt: alitolag ez olyat general, hogy tetszoleges ket pontja kozott mindig van ut, azaz barmelyik reszet kinevezheted a labirintusodnak kezdopontkent es kijaratkent, es a feladat teljesitheto.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Általános BASIC Kérdések
« Reply #152 on: 2011.November.18. 18:36:52 »
Itt egy (elég kezdetleges és lassú :oops:) labirintus program:
  [ Guests cannot view attachments ]
A mozgás a Space billentyűvel gyorsítható. A 2D8h címen állítható, hogy milyen valószínűséggel forduljanak elő olyan falak, amelyek a külső fallal nincsenek összekötve (00h: legnagyobb, 01h, 03h, 07h, 0Fh, 1Fh, 3Fh, 7Fh, FFh: legkisebb).

Online szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9928
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #153 on: 2011.November.18. 19:20:28 »
Itt egy (elég kezdetleges és lassú :oops:) labirintus program:
Ez nagyon tetszik!  :smt041
Csak érdekesség: olyan történt, hogy "beragadt" az emberke és egyetlen fal körül mászkál. [ Guests cannot view attachments ]

Ha ezt ilyen könnyen összehoztad, nem fejleszted tovább valami pacman programmá?
A falrajzoló eljárást nehéz lenne basicben megvalósítani? Mert ha a Hungry Creature játékomba belecsempészném, szerintem szórakoztató játék lenne. Vagy ha csak az itt rajzolt pályákat abba be lehetne tölteni, ha amúgy nagyon lassú lenne.
Most már tényleg összehozhatnánk valami eredeti EP játékot, még ha ilyen gagyi karakteres képernyõst is. :D
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Általános BASIC Kérdések
« Reply #154 on: 2011.November.18. 19:34:21 »
Csak érdekesség: olyan történt, hogy "beragadt" az emberke és egyetlen fal körül mászkál.

Valóban :oops: Ez javítható lenne azzal, ha nem véletlenszerű lenne a kezdeti irány.

Quote
A falrajzoló eljárást nehéz lenne basicben megvalósítani?

Nem tudom, érdemes-e BASIC-re átírni, mert az algoritmus nem túl jó, és elég lassú is. Valószínűleg célszerűbb lenne az lgb által leírt rekurzív módszert használni.
« Last Edit: 2011.November.18. 19:37:36 by IstvanV »

Online szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9928
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #155 on: 2011.November.19. 10:20:47 »
István, azt meg tudnád csinálni, hogy állítható legyen a labirintus nagysága (szélessége és magassága) karakterekben, és magát a labirintust el lehessen menteni egyszerû szöveges fájlba úgy, hogy a szélén a határoló falak ne legyenek benne a mentett fájlban? Valami ilyesmire gondolok: [ Guests cannot view attachments ] (Nem tudom, a sorok végén az a sortörés mennyire szabályos.) Lehet, felhasználnám valami EP játékhoz.

Az a rekurzív eljárás furcsának tûnik, ahogy belegondolok, de majd próbálkozom vele...
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Általános BASIC Kérdések
« Reply #156 on: 2011.November.19. 13:05:15 »
Ez a script állítható méretű labirintust generál szöveges file-ba:
  [ Guests cannot view attachments ]

Az elején lehet beállítani a különböző paramétereket:

Code: Lua
  1. mazeWidth = 43
  2. mazeHeight = 33
Ezek egyértelműek, 5 és 255 közötti páratlan számok adhatók meg. A kimeneti file nem tartalmazza a "keretet", tehát az alapbeállításokkal csak 41x31 méretű lesz.

Code: Lua
  1. innerWallProbability = 0.01
A külső falakkal nem összefüggő falak valószínűsége (0 és 1 között). Ha ez nagy, akkor általában egyszerűbb eljutni a kijáratig a külső falak mentén.

Code: Lua
  1. recursiveAlgorithm = false
Ha true, akkor a rekurzív algoritmus engedélyezett, és az innerWallProbability-nek nincs hatása. Ez eltérő jellegű labirintusokat állít elő.

Code: Lua
  1. outFileName = "/tmp/maze.txt"
A kimeneti file neve. Windows alatt a \ karakterek helyett \\-t kell írni (pl. "C:\\maze.txt").

Code: Lua
  1. math.randomseed(os.time())
Itt az os.time() helyére egész számot írva megismételhetővé válik a labirintus térképe (minden szám mást, de mindig ugyanazt generálja). Alapértelmezés szerint mindig más.
« Last Edit: 2011.November.19. 13:09:35 by IstvanV »

Online szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9928
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #157 on: 2011.November.19. 14:49:15 »
Köszi!
Próbálkozom beépíteni valami játékba...
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Online szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9928
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #158 on: 2011.November.19. 19:05:09 »
István scriptje által tervezett labirintusokból be lehet tölteni ebbe a játékba és játszani is lehet vele. Sajnos a játékot régen úgy csináltam meg, hogy a pálya szélessége páros számú karakterbõl áll, így amit a script generál, abból "ízlés szerint" ki kell törölni minden sorban egy-egy karaktert, pl. a Word nevû PC-s szövegszerkesztõvel. (Másik megoldás, ha a szélességet kettõvel kisebbre állítjuk a scriptben, akkor meg egy-egy karaktert minden sorba be kell külön szúrni.) Nekem úgy tûnik, rekurzív algoritmussal jönnek ki játszhatóbb pályák. A script, a játékhoz nagyjából testre szabva: [ Guests cannot view attachments ]

A menüben betöltés után a 2-es gombbal át kell váltani DESIGNED levels-re, így a lemezrõl tölti be a pályákat. Elsõként a LEVEL_1 nevût tölti be, erre érdemes átnevezni a labirintust, amit ki akarunk próbálni. A csomagba tettem még 3 pályát, ami a labirintuskészítõ scripttel készült, lehet próbálkozni. :D (Szerintem nagy odafigyelést igényel, mert el is lehet tévedni, és a szörnyek is jönnek.)
[ Guests cannot view attachments ]

[ Guests cannot view attachments ]

A kész pályákat lehet tovább szerkeszteni a játékba beépített pályaszerkesztõvel vagy a Worddel, hátha könnyebb és jobb lesz.
Szerintem túl nehéz a játék és néha unalmas, mert messze kerülhetnek a szörnyek. Nem tudom, mit lehetne csinálni vele, hogy érdekesebb legyen.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Általános BASIC Kérdések
« Reply #159 on: 2011.November.19. 20:45:41 »
Kissé továbbfejlesztett verziók:
  [ Guests cannot view attachments ] - a "beragadást" javítottam, és a labirintus generálása is gyorsult. A korábban 2D8h címen található paraméter 309h címre került
  [ Guests cannot view attachments ] - a rekurzív kettéosztásos algoritmust használja

Online szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9928
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #160 on: 2011.November.21. 17:23:59 »
Azt meg lehet csinálni valahogy a DISPLAY utasítással, hogy egy szöveges lap (vagy akár videólap) vízszintesen ne a képernyõ közepére kerüljön, hanem "arrébb" legyen? És így akár több videólap kerülhetne egymás mellé.
És nem tudom, a kurzort lehet-e teljesen likvidálni egy szöveges lapról. Persze a cursor colour és cursor character utasításokkal igen, de akkor csak látszólag nincs ott.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Lacika

  • EP addict
  • *
  • Posts: 3198
  • Country: hu
    • http://www.ep128.hu
Re: Általános BASIC Kérdések
« Reply #161 on: 2011.November.21. 18:01:28 »
Azt meg lehet csinálni valahogy a DISPLAY utasítással, hogy egy szöveges lap (vagy akár videólap) vízszintesen ne a képernyõ közepére kerüljön, hanem "arrébb" legyen? És így akár több videólap kerülhetne egymás mellé.
Teljességgel lehetetlen  :(

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14733
  • Country: hu
    • http://enterprise.iko.hu/
Re: Általános BASIC Kérdések
« Reply #162 on: 2011.November.21. 20:13:58 »
És így akár több videólap kerülhetne egymás mellé.
Ezt csak a Windows nevû BASIC bõvítéssel lehet megcsinálni, és csak TEXT 80-ban.

Quote
És nem tudom, a kurzort lehet-e teljesen likvidálni egy szöveges lapról. Persze a cursor colour és cursor character utasításokkal igen, de akkor csak látszólag nincs ott.
PRINT CHR$(27);"O";
PRINT CHR$(27);"o";

Most vagy én vagyok béna, vagy tényleg elfelejtettek erre BASIC utasítást írni?

Online szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9928
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #163 on: 2011.November.21. 21:52:15 »
Végülis a 0-ás (vagy 102-es? nekem a kettõ kicsit összefolyik) csatornán sincs kurzor, ha programból használjuk a print utasítást. De lehet, hogy annak más az oka.
De mintha anno láttam volna olyat, hogy lapon nem volt kurzor, csak szöveg. De már nem biztos.

Az volt poén egyszer, hogy megnyitottam egy 0-ás video: csatornát, majd több display utasítással e képernyõ különbözõ részein több "példányban" is megjelenítettem, és akkor kb. 3 kurzor volt és lehetett velük írni.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14733
  • Country: hu
    • http://enterprise.iko.hu/
Re: Általános BASIC Kérdések
« Reply #164 on: 2011.November.21. 22:07:01 »
A 0-ás az EDITOR ami a 102-es VIDEO-t használja. És kapcsolgatja rajta a kurzort, ezért nem látod.