Welcome, Guest. Please login or register.


Author Topic: Entersnake - gracha kígyós játék (Read 21304 times)

Offline Ferro73

  • EP lover
  • *
  • Posts: 811
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 68.0 Firefox 68.0
    • View Profile
Re: Entersnake - gracha kígyós játék
« Reply #120 on: 2019.July.25. 20:36:59 »
Akkor mindegyik EXIT FOR és EXIT DO elé kell egy IF, hogy tényleg a tűzgomb volt-e megnyomva, tehát valami változó értékét kéne átadnia több ciklusvég után. Az nem túl bonyolult?
De Igen.
De akkor úgy működne ahogy elképzelted.

Kérdés a ZZZIP
PASS 2 után  sorszám nélkül "Douple reference" hiba üzenettel végez.

Valahol hiba magyarázat hol olvashatok?
« Last Edit: 2019.July.25. 20:41:59 by Ferro73 »

Offline szipucsu

  • EP addict
  • *
  • Posts: 8601
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 68.0 Firefox 68.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Entersnake - gracha kígyós játék
« Reply #121 on: 2019.July.25. 22:40:17 »
De Igen.
De akkor úgy működne ahogy elképzelted.
Van erre egyszerűbb, jobb módszer, mint amit elképzeltem? Hogy a legelegánsabb ilyesmit megcsinálni?

Quote
Kérdés a ZZZIP
Nekem lefordítja a legutóbbi verziót. Módosítottál benne vvalamit?
Double reference olyasmi lehet, hogy már megvolt egy tömb, és még egyszer definiálták. Vagy a lokális-globális változók problémájával függhet össze. Vagy ugyanaz a DEF blokk kétszer is megvan.
Itt van ismertető a Zzzipről. A Double reference üzenetet pont nem találom az ismertetőben.
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline Ferro73

  • EP lover
  • *
  • Posts: 811
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 68.0 Firefox 68.0
    • View Profile
Re: Entersnake - gracha kígyós játék
« Reply #122 on: 2019.July.26. 08:02:19 »
Próbáltad már IF-fel kiváltani a FOR-t?

Offline Ferro73

  • EP lover
  • *
  • Posts: 811
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 68.0 Firefox 68.0
    • View Profile
Re: Entersnake - gracha kígyós játék
« Reply #123 on: 2019.July.26. 11:47:40 »
 
Code: [Select]
FOR X=A TO B STEP C
...
NEXT X

Code: [Select]
L000 LET X=A
L010
...
Lxxx IF X<=B THEN X=X+C:GOTO L010
BASIC-ben lassabb a FOR-nál viszont valamikor FOR a probléma.
ZZZIP-ben elenyésző a különbség.

Offline szipucsu

  • EP addict
  • *
  • Posts: 8601
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 68.0 Firefox 68.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Entersnake - gracha kígyós játék
« Reply #124 on: 2019.July.26. 13:56:24 »
BASIC-ben lassabb a FOR-nál viszont valamikor FOR a probléma.
Ez is jó, most is valami ilyesmi van a programban. Csak azt mondják, a GOTO használatáért strukturált programozásnál irgum-burgum, de hát ha máshogy nem működik? :D

PASS 2 után  sorszám nélkül "Douple reference" hiba üzenettel végez.
Kiderült már, mi a probléma? Néha fura a Zzzip, nem is az a hiba, amit jelez. Volt, hogy módosítottam a programot, mielőtt lefordítottam, és teljesen más hibát jelzett, mint amit módosítottam benne, pedig az volt a rossz.
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline Ferro73

  • EP lover
  • *
  • Posts: 811
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 68.0 Firefox 68.0
    • View Profile
Re: Entersnake - gracha kígyós játék
« Reply #125 on: 2019.July.26. 14:28:18 »
Ja.
A zene DATA-t beleraktam G(1 TO 93), H(1 TO 93), J(1 TO 93)
Ezért jeleznem kellett NUMERIC vagy DIM révén más különben hiba a változóban.

Nem jöttem rá hol a hiba.
Raktál NUMERIC G,H,J  valahová?

Mindegy a Változókat M,N,O ra cseréltem és így már elfogadta a ZZZIP.
Bár nem indul el a ZZZIP-s fordítás "kevés a memória"

Offline szipucsu

  • EP addict
  • *
  • Posts: 8601
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 68.0 Firefox 68.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Entersnake - gracha kígyós játék
« Reply #126 on: 2019.July.26. 14:39:58 »
Bár nem indul el a ZZZIP-s fordítás "kevés a memória"
Én már abban is kételkedtem, hogy a legutóbbi változatomat le fogja fordítani.
A megoldás az lenne talán, hogy kevesebb változónevet használunk. Talán túl sok a tömb. Most egy régebbi verzió txt-be menteséből idézek:

Code: [Select]
  310 NUMERIC MUSS(1 TO 128),GETAN(1 TO 27)
  320 NUMERIC X,Y,VX,VY,ADD,DOOR,ZENE,KUKACX(0 TO 99),KUKACY(0 TO 99)
  340 NUMERIC C0(1 TO 27),C1(1 TO 27),C2(1 TO 27),C3(1 TO 27)
  350 NUMERIC MT,KAPUX,KAPUY,AKADSZ,HOSSZ,IDO,PLUSIDO,STICK,FEJ,S1,S2,UMT

A menüben például a MUSS tömb nem használatos, így ezt is lehetne az általad használt G,H,J egyike helyett használni. A C0, C1, C2, C3-ban a paletta tárolódik, a képernyő kirajzolása után elvileg már nincs rájuk szükség. Így lehetne azt is, hogy a C0, C1, C2 ne 1 TO 27, hanem 1 TO 93 legyen, és akkor ezeket a zenéhez is fel lehetne használni. Így talán belefér a memóriába. Mit szólsz?

Másik megoldás, hogy most már úgyis lassan kész lesz a végleges verzió, így a SET CHARACTER és ENVELOPE NUMBER adatokat át lehetne tenni egy betöltőbe, annyival több hely maradna a program számára. A ZZZIP által generált basic betöltő elejére lehetne tenni ezeket akár. a SET CHARACTER helyett mehetne az is, hogy a karakterkészetet egy fájlba menteni el és onnan tölteni be, ez lenne mondjuk az ENTSNAK.CHR, vagy ilyesmi.
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline Ferro73

  • EP lover
  • *
  • Posts: 811
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 68.0 Firefox 68.0
    • View Profile
Re: Entersnake - gracha kígyós játék
« Reply #127 on: 2019.July.26. 15:31:41 »

A menüben például a MUSS tömb nem használatos, így ezt is lehetne az általad használt G,H,J egyike helyett használni. A C0, C1, C2, C3-ban a paletta tárolódik, a képernyő kirajzolása után elvileg már nincs rájuk szükség. Így lehetne azt is, hogy a C0, C1, C2 ne 1 TO 27, hanem 1 TO 93 legyen, és akkor ezeket a zenéhez is fel lehetne használni. Így talán belefér a memóriába. Mit szólsz?
Nem tökéletes mert használod. Minden egyes pálya megrajzolásakor.
DEF PALETTE_SET

Bár ha a DATA sorok nem így írtad volna meg. Memóriát ás sebességet nyertél volna.

Másik megoldás, hogy most már úgyis lassan kész lesz a végleges verzió, így a SET CHARACTER és ENVELOPE NUMBER adatokat át lehetne tenni egy betöltőbe, annyival több hely maradna a program számára. A ZZZIP által generált basic betöltő elejére lehetne tenni ezeket akár. a SET CHARACTER helyett mehetne az is, hogy a karakterkészetet egy fájlba menteni el és onnan tölteni be, ez lenne mondjuk az ENTSNAK.CHR, vagy ilyesmi.
A fájl nem rossz ötlet :
Valami ilyesmi?
Code: [Select]
WHEN EXCEPTION.....
  open file
köv  READ ch0,ch1,ch2...
      CALL CHAR_DEF
     goto  köv
END WHEN

if WHEN.. nincs több adat
 close file
 goto folytatás

és akkor nem kell töprengeni mennyi karaktert készíts.

Offline szipucsu

  • EP addict
  • *
  • Posts: 8601
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 75.0.3770.142 Chrome 75.0.3770.142
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Entersnake - gracha kígyós játék
« Reply #128 on: 2019.July.26. 19:03:26 »
Nem tökéletes mert használod. Minden egyes pálya megrajzolásakor.
DEF PALETTE_SET
Igen, viszont a menü kirajzolása után már nem kellenek ezek az értékek, amik a C0(), C1() tömbökben vannak, egészen a játék indításáig. A menü kirajzolása után fel lehet tölteni más értékekkel (pl. a menü zenéjével) ezeket a tömböket. A játék indítása után persze megint feltölti más értékekkel, de addigra meg már a menü közbeni zene nem kell. Ha újra jön a menü, újra fel kell tölteni a tömböt a menü zenéjének adataival.
Nyilván játék közben nem illik piszkálni a MUSS() tömböt, mert a játék közbeni zene ebben van, de a menü zenéjéhez simán fel lehetne használni.

Quote
Valami ilyesmi?
Code: [Select]
WHEN EXCEPTION.....
  open file
Nem erre gondoltam. Arra gondoltam, hogy azt a memóriaterületet menteni el először, amiben a karakterek alakjai vannak. Majd a betöltő ezt olvasná be és SPEEK-elné át. Ehhez van egy rutin, CALL USR, CODE, HEX$ van benne, majd előásom, és akkor a karakterkészletet kimentő és betöltő rutin is mehet a hasznos kis basic programok közé is.
De ahogy most van a sok SET CHARACTER a programban, az is maradhat. Szerintem a tömböknek nem lenne több hely, ha azokat a sorokat kötörölnénk a programból.
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline Ferro73

  • EP lover
  • *
  • Posts: 811
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 68.0 Firefox 68.0
    • View Profile
Re: Entersnake - gracha kígyós játék
« Reply #129 on: 2019.July.26. 19:18:12 »
Akkor a teljes memória  mint a ZX-nél xxx.CHR.
128kar.*9 sor 1152 bájt

Code: [Select]
open file
FOR X=1 TO 1152
READ A
SPOKE(255,xx+X,A)
NEXT
CLOSE file

Offline szipucsu

  • EP addict
  • *
  • Posts: 8601
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 75.0.3770.142 Chrome 75.0.3770.142
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Entersnake - gracha kígyós játék
« Reply #130 on: 2019.July.26. 20:15:20 »
128kar.*9 sor 1152 bájt
Igen, erre gondoltam. Majd előásom a rutint ehhez, már használtam korábban.

Van az a varázsszer a játékban, ami a hátralevő időt vagy megduplázza, vagy megfelezi, véletlenszerűen. Ebbe lehetne valami mást építeni, hogy ne véletlenszerű legyen. Bár nagy jelentősége talán nincs. Akkor bosszantó, ha a kijárattól nem messze pont ott van egy ilyen varázsszer, és felvesszük, emiatt telik le az idő és nem jutunk ki, és csak a szerencsén múlott. Van valami ötlet, mitől függjön, hogy megduplázza vagy megfelezze az időt ez a cucc? (Pl. kígyó hossza, még összeszedendő bogyók száma, esetleg e kettő összegének a gyöke/logaritmusa/deriváltja határozza meg, hogy felező vagy duplázó legyen-e? vagy kis sebességnél felezzen, nagy sebességnél duplázzon?)
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline Ferro73

  • EP lover
  • *
  • Posts: 811
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 68.0 Firefox 68.0
    • View Profile
Re: Entersnake - gracha kígyós játék
« Reply #131 on: 2019.July.27. 07:41:01 »
Ötlet:
Ha megjelenik ez a tárgy a BORDER zöld és piros között pulzálna minél világosabb annál nagyobb a szorzó /zöld/ vagy osztó /piros/ 1-1.5-2.
Így van vizuális segítség mikor kapja be.
Lehet elötte tekeregni.
Pulzálás 2-2 másodperc.

Offline szipucsu

  • EP addict
  • *
  • Posts: 8601
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 75.0.3770.142 Chrome 75.0.3770.142
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Entersnake - gracha kígyós játék
« Reply #132 on: 2019.July.27. 09:49:47 »
Ötlet:
Talán meg is lehetne csinálni. A gond, hogy a keretszínnek már van funkciója. Illetve, ez a tárgy sokszor megjelenik, több is lehet belőle a képernyőn, tehát folyamatosan lenne a legjobb az a pulzálás, csak nem a kereté.
De nem tudom, van-e jelentősége. Nem feltétlen az a jó, ha plusz időt ad, és az sem feltétlen rossz, ha megfelezi az időt. Ha kevés bogyó van a pályán, akkor csak jó, ha elfogy az idő és újabb bogyók kerülnek a pályára.

Azt a tömbös megoldást nem próbálod ki? A C0 és C1 tömb tartományát megnöveled 27-ről 93-ra, a menüben a zenéhez pedig a G, H, J helyett MUSS, C0 és C1 tömböket használhatsz fel. Persze csak miután kirajzolta a menü hátterét, azután töltöd fel a C0 és C1 értékeit.
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline Ferro73

  • EP lover
  • *
  • Posts: 811
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 68.0 Firefox 68.0
    • View Profile
Re: Entersnake - gracha kígyós játék
« Reply #133 on: 2019.July.27. 11:26:01 »
De nem tudom, van-e jelentősége. Nem feltétlen az a jó, ha plusz időt ad, és az sem feltétlen rossz, ha megfelezi az időt. Ha kevés bogyó van a pályán, akkor csak jó, ha elfogy az idő és újabb bogyók kerülnek a pályára.
Akkor a dupla/felező nagy érvágás. Főleg ha több is van belőle.

Azt a tömbös megoldást nem próbálod ki? A C0 és C1 tömb tartományát megnöveled 27-ről 93-ra, a menüben a zenéhez pedig a G, H, J helyett MUSS, C0 és C1 tömböket használhatsz fel. Persze csak miután kirajzolta a menü hátterét, azután töltöd fel a C0 és C1 értékeit.
Nem mert úgy nem nyernénk plusz időt. Sok volna a csend.
Azt szerettem volna ha már a főmenü kirajzolásától kezdve menne a zene.

Offline szipucsu

  • EP addict
  • *
  • Posts: 8601
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 68.0 Firefox 68.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Entersnake - gracha kígyós játék
« Reply #134 on: 2019.July.27. 11:36:02 »
Akkor a dupla/felező nagy érvágás. Főleg ha több is van belőle.
Játék közben sokszor eltörpül a jelentősége, mert a játék sokszor gyors, dinamikus.  Ha sokáig húzza az ember egy pályán, tele lesz már mindenféle tárggyal és gombóccal a képernyő. Ilyenkor, ha le is telik az idő, nincs nagy jelentősége, mert annyi gombóc van, hogy pillanatok alatt össze lehet szedni, amennyit kell.

Quote
Nem mert úgy nem nyernénk plusz időt. Sok volna a csend.
Azt szerettem volna ha már a főmenü kirajzolásától kezdve menne a zene.
Nem tudom, mennyire lenne érzékelhető ez Zzzippel. A pályák közötti váltáskor is beolvas egy csomó adatot, a palettát és a zenét is. Szerintem nem tűnik fel, hogy ez lassítana. Ha mégis lassítana, arra az időre a POKE 56,201-gyel lehet gyorsítani, az adatok beolvasása után pedig visszaállítani a POKE 56,245-tel.
(Na, pl. ezt a POKE-ot is rá lehetne írni az EP-s bögrére, mert sose tudom megjegyezni, most is utána kellett néznem a Wikin. Érdekes módon az OUT 191,12-t fejből tudom már. :D )
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos