Welcome, Guest. Please login or register.


Author Topic: Dots and Gems (Read 3860 times)

Offline szipucsu

  • EP addict
  • *
  • Posts: 8479
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 76.0 Firefox 76.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dots and Gems
« Reply #30 on: 2020.June.03. 14:55:40 »
The Úttörőház :D
Úttörőáruház, ahol EP-t lehetett kapni. A második szint The Centrum Aruhaz. De vannak még ennél komolyabbak is. De nem lövöm le a poént, csak ha nagyon nem jutna tovább senki, de szerintem nem annyira nehéz.

Meg lehetne csinálni, hogy egyenletes legyen nagyjából a sebesség. Tele van SPOKE-kal a basic program is, így ha nem hívná meg mindig a lassító eljárást, eléggé gyors lenne. Egy változó értéke adja meg mindig, mennyit várakozzon, és mozgásnál kisebb a várakozás, főleg ha eszi a bogyókat vagy görgeti a képernyőt. Viszont elég nehéz belőni pontosan az értékét.
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 geco

  • EP addict
  • *
  • Posts: 5664
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 68.0 Firefox 68.0
    • View Profile
Re: Dots and Gems
« Reply #31 on: 2020.June.03. 15:04:55 »
Úttörőáruház, ahol EP-t lehetett kapni. A második szint The Centrum Aruhaz. De vannak még ennél komolyabbak is. De nem lövöm le a poént, csak ha nagyon nem jutna tovább senki, de szerintem nem annyira nehéz.

Meg lehetne csinálni, hogy egyenletes legyen nagyjából a sebesség. Tele van SPOKE-kal a basic program is, így ha nem hívná meg mindig a lassító eljárást, eléggé gyors lenne. Egy változó értéke adja meg mindig, mennyit várakozzon, és mozgásnál kisebb a várakozás, főleg ha eszi a bogyókat vagy görgeti a képernyőt. Viszont elég nehéz belőni pontosan az értékét.
Bocs, elgépeltem, igen, arra gondoltam, hallani sokat hallottam róla, én a Miskolci rumba-rumba a Centrumba jártam programokért , a gép nem tudom honnan származik, lehet a szülők pont az Úttörőáruházban vették :D
Nem annyira nehéz, én nem szeretek sokat tölteni egy játékkal, ezért van az, hogy konvertálás közben is "megutálom" a programok nagy részét :D :D

Offline szipucsu

  • EP addict
  • *
  • Posts: 8479
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 77.0 Firefox 77.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dots and Gems
« Reply #32 on: 2020.June.05. 12:44:22 »
Egyelőre annyit csináltam meg, hogy nem figyeli, honnan jött, de ha a kapu mellett akarunk bemenni a kapun, akkor jobbra és balra mozgásnál figyeli, van-e arrébb kapu a fal mellett, és ha van, akkor odalép. Itt egy rövid demo, amin szemléltetem, hogyan működik ez:
* left-right walking.ep128d (60.82 kB - downloaded 11 times.)
Egyelőre még csak jobbra és balra működik ez, fel le nem. És egyelőre csak akkor működik, ha üres a pálya a kapunál. Ha bogyó van ott vagy bármi más, már nem működik, azt még nem figyeli, csak a szóközt. Így milyen? Kicsit tesztelgettem, nekem pár helyen így jobb is volt, de valamikor meg pont nem jó, mert túlmegyek ott, ahol nem kéne.
Még a toplistát is megcsináltam, hogy eggyel kevesebb számjegyűek legyenek a pontszámok. Mást nem változtattam.
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 Tomato77

  • EP fan
  • *
  • Posts: 240
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 83.0.4103.61 Chrome 83.0.4103.61
    • View Profile
Re: Dots and Gems
« Reply #33 on: 2020.June.05. 18:12:32 »
Szerintem sokkal jobb így. Fel-le irányban is meg kéne csinálni, és figyelje a bigyókat is, ne csak a szóközöket, akkor tök élvezetesen lehet majd száguldozni vele.
Kotasoft

Offline szipucsu

  • EP addict
  • *
  • Posts: 8479
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 77.0 Firefox 77.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dots and Gems
« Reply #34 on: 2020.June.06. 12:36:16 »
figyelje a bigyókat is, ne csak a szóközöket
Egyelőre jobbra irányba csináltam meg teljesen, jó sok sorral hízott tőle a program, és ha a többi irányba is megcsinálom, még jobban meg fog hízni. Bár beleférni talán belefér, de ezen lehet, jobb lenne egyszerűsíteni. Így most a CASE ELSE után nem egyből az jön, hogy END SELECT, hanem még ott megnézi, hogy a fal mellett arrébb van-e kapu, a krapek mellett mindkét helyen.
Rendkívül sok az ismétlődés a sorokban, ezt valahogy meg kéne oldani, hogy csak egyszer adjuk meg a számokat, és utána hatja végre az utasításokat, amiket most itt minden CASE ág után végrehajt. Az az ötletem, hogy lesz egy OLDMAN és egy MAN változó, az előbbiben a krapek előző pozíciója lesz, és majd a számok megadása után külön fogja az OLDMAN pozícióban letörölni, az újban pedig kirajzolni, közben pedig a képernyőt is görgetni. Ha minden igaz, működni fog, de lehet, lesz ott valami nehézség, de majd kiderül, ha nekiállok megcsinálni.
Így néz ki egyelőre az ominózus "ha jobbra nyomjuk az irányt, mi történjen" eljárás teljes hosszában. Az nem baj, hogy GOTO-val kiugrunk a SELECT ágból, pl. a 650. és a 655. sorban, nem okoz hibát hosszú távon?
(A POSI változó az ablak függőleges léptetéséhez kell, a MAN változó a videomemóriában vagy hol a krapek pozíciója a 34 széles videolapon, a WWW a várakozás hossza.)
Code: [Select]
500 SELECT CASE JOY(ST)
510 CASE 1
520   SOUND SOURCE 3,ENVELOPE 10,INTERRUPT,STYLE 8,LEFT 127,RIGHT 64
530   SOUND PITCH RND(12)+49,INTERRUPT,ENVELOPE 4,SOURCE 1,STYLE 16,LEFT 64,RIGHT 127
540   CALL CHAR_DEF(112,96,116,228,192,128,192,224,112,96) !JOBBRA
550   LET K=SPEEK(255,MAN+1)
560   SELECT CASE K
570   CASE 32
580     SPOKE 255,MAN,32:LET MAN=MAN+1:LET WWW=37
590   CASE 120
600     SPOKE 255,MAN,32:LET MAN=MAN+1:LET WWW=37
610     CALL BONUSPILL
620   CASE 42
630     SPOKE 255,MAN,32:LET MAN=MAN+1:LET WWW=20:CALL NYAMM
640   CASE 37
650     GOTO 1660
651   CASE ELSE
652     SP=SPEEK(255,MAN+35)
653     SELECT CASE SP
654     CASE 32
655       LET WWW=30:LET POSI=POSI+1:SPOKE 255,MAN,32:LET MAN=MAN+35:DISPLAY #102:AT 3 FROM POSI-9 TO POSI+10:GOTO 688
656     CASE 120
657       LET WWW=30:LET POSI=POSI+1:SPOKE 255,MAN,32:LET MAN=MAN+35:DISPLAY #102:AT 3 FROM POSI-9 TO POSI+10:CALL BONUSPILL:GOTO 688
658     CASE 42
659       LET WWW=30:LET POSI=POSI+1:SPOKE 255,MAN,32:LET MAN=MAN+35:DISPLAY #102:AT 3 FROM POSI-9 TO POSI+10:CALL NYAMM:GOTO 688
660     CASE 37
661       GOTO 1660
662     CASE ELSE
663     END SELECT
664     SP=SPEEK(255,MAN-33)
665     SELECT CASE SP
666     CASE 32
667       LET WWW=30:LET POSI=POSI-1:SPOKE 255,MAN,32:LET MAN=MAN-33:DISPLAY #102:AT 3 FROM POSI-9 TO POSI+10
668     CASE 120
669       LET WWW=30:LET POSI=POSI-1:SPOKE 255,MAN,32:LET MAN=MAN-33:DISPLAY #102:AT 3 FROM POSI-9 TO POSI+10:CALL BONUSPILL
670     CASE 42
671       LET WWW=30:LET POSI=POSI-1:SPOKE 255,MAN,32:LET MAN=MAN-33:DISPLAY #102:AT 3 FROM POSI-9 TO POSI+10:CALL NYAMM
672     CASE 37
673       GOTO 1660
674     CASE ELSE
675     END SELECT
688   END SELECT
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 ergoGnomik

  • EP lover
  • *
  • Posts: 924
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows NT 6.3 Windows NT 6.3
  • Browser:
  • Firefox 77.0 Firefox 77.0
    • View Profile
Re: Dots and Gems
« Reply #35 on: 2020.June.06. 19:22:57 »
A CALL-ok és GOTO-k helyett két jelzőváltozót (flag) lehetne alkalmazni. Például CFLAG és GFLAG. A CFLAG értéke legyen mondjuk 0, 1 vagy 2 aszerint, hogy nem kell hívni semmit, NYAMM-ot vagy BONUSPILL-t kell hívni. Hasonlóan GFLAG értéke legyen 0 ha nem kell a SELECT CASE szerkezet után ugrást végezni, vagy legyen az ugrás cél sorszáma.

Ha van egy kis szerencséd, akkor a négy irány szerint annyi lesz a különbség, hogy a koordináta változókhoz milyen értéket kell hozzáadni. (A kivonás negatív érték hozzáadása!) Ebben az esetben az irányok függvényében feltölthetsz kellő számú változót a megfelelő értékekkel egy első SELECT CASE szerkezetben, utána pedig a másodikban elvégzed a számolt koordináták alapján a pályaadatok ellenőrzését és a frissítést.

Offline Tomato77

  • EP fan
  • *
  • Posts: 240
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 79.0.3945.136 Chrome 79.0.3945.136
    • View Profile
Re: Dots and Gems
« Reply #36 on: 2020.June.07. 00:28:55 »
Ha ez a részlet csak egy irány megvalósítása (joy=1, azaz jobbra), akkor kicsit el van bonyolítva. ErgoGnomik meglátása is jó, hogy a koordináta változásokat el lehetne tárolni irányonként, és akkor nem kéne ugyanazt a kódot négyszer megírni. Meg ha az "SP=SPEEK(255,MAN-33)" a pálya egy adott eleme, akkor utána a 32 (szóköz?), 120, 42 esetekre nem kellene ugyanazt a kódot 3x megírni. Azért kéne a fal vizsgálatánál inkább megváltoztatni az irányt, mintha a játékos másfelé tolta volna a joyt, utána elég lenne egyszer elvégezni a mozgatást és a videolap megjelenítést. Az üres "case else" ág se kell, ha nincs ott semmilyen utasítás, valamint szerintem case szerkezetből "ki-goto-zni" se elegáns megoldás.
Kotasoft

Offline szipucsu

  • EP addict
  • *
  • Posts: 8479
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 77.0 Firefox 77.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dots and Gems
« Reply #37 on: 2020.June.07. 00:40:24 »
Megcsináltam, látszólag működik mindegyik irányban:
* Gems easier moving.ep128s (51.85 kB - downloaded 12 times.)
* Gems easier moving.zip (20.77 kB - downloaded 10 times.)
Jelentősen egyszerűsítettem a programon. A joy figyelésénél csak meghatározza a változók értékét, hogy milyen irányba, mit hogyan mennyit. Majd a joy figyelést követően ezeknek a változóknak az értéke alapján arrébb is löki, amit kell.
Iderakom a programrészletet. Ilyenre gondoltatok, vagy még ennél is egyszerűbbre? Még talán az a DISPLAY is elég lenne egyetlen egyszer a végén, nem többször ott belül.
A K1 azt jelöli, hogy ha van út az adott irányba, abba menjen annyit.
K2: az egyik irányba nézi az arrébb lévő kaput
K3: a másik irányba nézi az arrébb lévő kaput
P0: ennyit görgesse a képernyőt, ha van út az adott irányban
P1: ennyit görgesse a gépernyőt, ha az arrébb lévő irányban van út.
P2: ennyit görgesse a gépernyőt, ha a másik arrébb lévő irányban van út.

Code: [Select]
500 SELECT CASE JOY(ST)
 510 CASE 1
 520   SOUND SOURCE 3,ENVELOPE 10,INTERRUPT,STYLE 8,LEFT 127,RIGHT 64
 530   SOUND PITCH RND(12)+49,INTERRUPT,ENVELOPE 4,SOURCE 1,STYLE 16,LEFT 64,RIGHT 127
 540   CALL CHAR_DEF(112,96,116,228,192,128,192,224,112,96) !JOBBRA
 550   LET K1=1:LET K2=35:LET K3=-33:LET P0=0:LET P1=1:LET P2=-1
 689 CASE 2
 690   SOUND PITCH RND(12)+49,INTERRUPT,ENVELOPE 4,SOURCE 1,STYLE 16,RIGHT 64,LEFT 127
 700   SOUND SOURCE 3,ENVELOPE 9,INTERRUPT,STYLE 12,LEFT 64,RIGHT 127
 720   CALL CHAR_DEF(112,96,226,114,48,16,48,112,224,96) !BALRA
 730   LET K1=-1:LET K2=33:LET K3=-35:LET P0=0:LET P1=1:LET P2=-1
 850 CASE 4
 860   SOUND PITCH 56+RND(12),ENVELOPE 4,SOURCE 1,INTERRUPT,RIGHT 64,LEFT 127,STYLE 32
 870   SOUND SOURCE 3,ENVELOPE 4,INTERRUPT,STYLE 16,LEFT 64,RIGHT 127
 890   CALL CHAR_DEF(112,0,96,240,240,248,248,144,144,144)
 900   LET K1=34:LET K2=33:LET K3=35:LET P0=1:LET P1=1:LET P2=1
1030 CASE 8
1040   SOUND PITCH 44+RND(12),ENVELOPE 4,SOURCE 1,INTERRUPT,LEFT 64,RIGHT 127,STYLE 48
1050   SOUND SOURCE 3,ENVELOPE 4,INTERRUPT,STYLE 16,LEFT 127,RIGHT 64
1070   CALL CHAR_DEF(112,144,144,144,144,248,248,240,96,0)
1080   LET K1=-34:LET K2=-33:LET K3=-35:LET P0=-1:LET P1=-1:LET P2=-1
1090 CASE 16
1100   GOTO 1660
1212 CASE ELSE
1213   LET WWW=60:GOTO 1270
1214 END SELECT
  ! tényleges mozgatás
1215 LET K=SPEEK(255,MAN+K1)
1216 SELECT CASE K
1217 CASE 32
1218   SPOKE 255,MAN,32:LET MAN=MAN+K1:LET WWW=37:LET POSI=POSI+P0:DISPLAY #102:AT 3 FROM POSI-9 TO POSI+10
1219 CASE 120
1220   SPOKE 255,MAN,32:LET MAN=MAN+K1:LET WWW=37:LET POSI=POSI+P0:CALL BONUSPILL
1222 CASE 42
1223   SPOKE 255,MAN,32:LET MAN=MAN+K1:LET WWW=20:LET POSI=POSI+P0:CALL NYAMM
1224 CASE 37
1225   GOTO 1660
1226 CASE ELSE
1227   SP=SPEEK(255,MAN+K2)
1228   SELECT CASE SP
1229   CASE 32
1230     LET WWW=30:LET POSI=POSI+P1:SPOKE 255,MAN,32:LET MAN=MAN+K2:DISPLAY #102:AT 3 FROM POSI-9 TO POSI+10:GOTO 1251
1231   CASE 120
1232     LET WWW=30:LET POSI=POSI+P1:SPOKE 255,MAN,32:LET MAN=MAN+K2:CALL BONUSPILL:GOTO 1251
1233   CASE 42
1234     LET WWW=30:LET POSI=POSI+P1:SPOKE 255,MAN,32:LET MAN=MAN+K2:CALL NYAMM:GOTO 1251
1235   CASE 37
1236     GOTO 1660
1237   CASE ELSE
1238   END SELECT
1239   SP=SPEEK(255,MAN+K3)
1240   SELECT CASE SP
1241   CASE 32
1242     LET WWW=30:LET POSI=POSI+P2:SPOKE 255,MAN,32:LET MAN=MAN+K3:DISPLAY #102:AT 3 FROM POSI-9 TO POSI+10
1243   CASE 120
1244     LET WWW=30:LET POSI=POSI+P2:SPOKE 255,MAN,32:LET MAN=MAN+K3:CALL BONUSPILL
1245   CASE 42
1246     LET WWW=30:LET POSI=POSI+P2:SPOKE 255,MAN,32:LET MAN=MAN+K3:CALL NYAMM
1247   CASE 37
1248    GOTO 1660
1249   CASE ELSE
1250   END SELECT
1251 END SELECT
1252 SPOKE 255,MAN,112
« Last Edit: 2020.June.07. 00:44:38 by szipucsu »
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 ergoGnomik

  • EP lover
  • *
  • Posts: 924
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Opera 12.18 Opera 12.18
    • View Profile
Re: Dots and Gems
« Reply #38 on: 2020.June.07. 09:40:04 »
A SOUND parancsokat is ki lehetne gyűjteni az első SELECT CASE utánra, a már alkalmazott minta szerint.

A K és SP értékét látszólag sehol sem használod, így az értéküket közvetlenül is betehetnéd a SELECT CASE paraméterének.

Érdekes módon a GOTO-k kiszervezésének mégsem kezdtél neki, pedig az volt a kiindulási alap, hogy tartasz tőle bajt okoznak.

Egyébként a GOTO 1251-eket ki lehet váltani azzal, hogy az 1227-be teszel egy SKIP = 0-t, az 1230, 1232 és 1234-be SKIP = 1-et, és az 1239-től 1250-ig sorokat beteszed egy IF NOT SKIP ... END IF blokkba. (Ha jól rémlik a szintaxis.)

A tegnapi GFLAG-es tippemet pedig át lehet alakítani úgy, hogy nulla legyen ha nem kell ugrani, 1..N az ugrási címek első előfordulási sorszáma, az ugrást meg IF GFLAG THEN ON GFLAG cím1, ... címN utasítással hajtod végre. (És még lehet, hogy az IF GFLAG THEN is felesleges!)

A példádban az 500-as sor elé betenni egy GFLAG = 0-t, az 1100-ba a GOTO helyett GFLAG = 1-et, az 1213-ba GFLAG = 2-t, majd az 1214-es sor után egy [IF GFLAG THEN] ON GFLAG GOTO 1660, 1270-et. (Vigyázni kell, hogy az esetleg kigyűjtött SOUND utasítások az ON GOTO után kerüljenek!)

Offline szipucsu

  • EP addict
  • *
  • Posts: 8479
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 83.0.4103.61 Chrome 83.0.4103.61
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dots and Gems
« Reply #39 on: 2020.June.07. 11:35:33 »
A SOUND parancsokat is ki lehetne gyűjteni az első SELECT CASE utánra, a már alkalmazott minta szerint.
Ennek lenne valami előnye? Újabb változóneveket kellene bevetni a sok sound paraméterhez. Maga a program nem lenne rövidebb tőle.

Quote
A K és SP értékét látszólag sehol sem használod, így az értéküket közvetlenül is betehetnéd a SELECT CASE paraméterének.
:smt045
 
Quote
Érdekes módon a GOTO-k kiszervezésének mégsem kezdtél neki, pedig az volt a kiindulási alap, hogy tartasz tőle bajt okoznak.
Gondoltam rá, hogy máshogy kéne megcsinálni, csak tegnap hirtelen nagyon megörültem, hogy működik a könnyebben irányítható változat, és feltettem úgy, ahogy már működik.

Quote
Egyébként a GOTO 1251-eket ki lehet váltani azzal, hogy az 1227-be teszel egy SKIP = 0-t, az 1230, 1232 és 1234-be SKIP = 1-et, és az 1239-től 1250-ig sorokat beteszed egy IF NOT SKIP ... END IF blokkba. (Ha jól rémlik a szintaxis.)
Megoldható.

Quote
A példádban az 500-as sor elé betenni egy GFLAG = 0-t, az 1100-ba a GOTO helyett GFLAG = 1-et, az 1213-ba GFLAG = 2-t, majd az 1214-es sor után egy [IF GFLAG THEN] ON GFLAG GOTO 1660, 1270-et. (Vigyázni kell, hogy az esetleg kigyűjtött SOUND utasítások az ON GOTO után kerüljenek!)
Lehet, hogy a 1100-as sorban inkább majd valami CALL-lal kéne meghívni az energialevonó rutint, azt meg DEF rutinná alakítani. Közben mindig nézné ez az eljárás után, hogy 0 lesz-e az energia, és ha igen, akkor életlevonós, kinyiffanós, pályaelölrőlkezdős vagy gameover eseményeket realizálna. :D Szóval csak akkor térne vissza a ciklus elejére, ha energia>0, különben továbbmenne az életlevonósdi felé.
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 ergoGnomik

  • EP lover
  • *
  • Posts: 924
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows NT 6.3 Windows NT 6.3
  • Browser:
  • Firefox 77.0 Firefox 77.0
    • View Profile
Re: Dots and Gems
« Reply #40 on: 2020.June.07. 12:45:41 »
A SOUND utasításoktól elkezdett jojózni a szemem, szóval lehet hogy eléggé különböznek egymástól, hogy ne legyen érdemes külön sorokba kihozni őket és változókban paramétert átadni.

Viszont nem feltétlenül kell új változókat bevezetni! Ha vannak olyan egymástól független programrészletek, amik garantáltan nem tudják egymás működését megzavarni, azok használhatják közösen ugyanazokat a munkaváltozókat. Csak arra kell ügyelni, hogy ne tételezd fel ezekről, hogy a tartalmuk nem változik meg az adott programrészletre kerülő vezérlés két időpillanata között eltelt időben! Szóval ezzel csínján, mert globális változókkal nagyon meg tudja szívatni magát az ember! Viszont ez egy lehetőség memória használat optimalizálásra.

Offline szipucsu

  • EP addict
  • *
  • Posts: 8479
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 83.0.4103.61 Chrome 83.0.4103.61
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dots and Gems
« Reply #41 on: 2020.June.07. 13:39:48 »
lehet hogy eléggé különböznek egymástól, hogy ne legyen érdemes külön sorokba kihozni őket és változókban paramétert átadni.
Annyira nem különböznek. Mindegyik esetben a zajcsatorna és egy négyszögjelcsatorna szól egyszerre, csak a left, right, style, pitch paraméterek eltérnek mind a négy iránynál. Jobbra és balra alacsony torzítással szól a hangcsatorna, lefele közepes, felfele magas torzítást használ. A zajcsatornának meg fel-le ugyanaz a polinomszámláló értéke, jobbra és balra meg két különböző, ennyi a lényege. Hogy ez amúgy mennyire fontos és mennyire érezni a különbséget és mennyit dob a játékon, az más kérdés. Az alacsony torzításnak mindig más a hangszínezete véletlenszerűen, amiről István már írt itt párszor, hogy a hangmegszakítás meg a Dave állapota éppen milyen és a hangminta milyen lesz tőle, vagy valami ilyesmi. Szóval ez a változatosabb hangzás is érdekesebbé teszi talán.
Lehetne Atic Atac játékból ismert lépéshanghoz hasonló, vagyis egy magasabb, egy mélyebb hang, és ezek váltogatnák egymást. Lehet, hogy lesz egy újabb verziója a játéknak, abban talán ilyen hang lesz, ebben marad, ami van, hacsak nincs más javaslat.

Quote
Viszont nem feltétlenül kell új változókat bevezetni!
Erre én is szoktam gondolni, csak kicsit nehéz nyomon követni az egész programban, milyen változók vannak már,amik csak egy adott programrészhez kellenek, és máshol újra felhasználhatók. Mindig attól félek, hogy a továbbfejlesztett programot nem fogja a Zzzip lefordítani, mert Too many labels üzenet lesz, régebben jártam már így. A Zzzip leírása szerint spórolni kell a változónevekkel és a sorszámokkal, mert elfogyhat az ezeknek fenntartott hely. Ezért is zsúfoltam be annyi mindent egy sorba a CASE ágak után.

Nem túl hangos a bogyóevés hangja? Nekem a zenéhez képest hangosnak tűnik.
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 ergoGnomik

  • EP lover
  • *
  • Posts: 924
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows NT 6.3 Windows NT 6.3
  • Browser:
  • Firefox 77.0 Firefox 77.0
    • View Profile
Re: Dots and Gems
« Reply #42 on: 2020.June.07. 13:47:12 »
Bocs! Elfuseráltam a mondatot. Igazából ez szeretett volna lenni: lehet hogy nem különböznek eléggé egymástól, hogy érdemes legyen külön sorokba kihozni őket és változókban paramétert átadni.

Offline szipucsu

  • EP addict
  • *
  • Posts: 8479
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 83.0.4103.61 Chrome 83.0.4103.61
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dots and Gems
« Reply #43 on: 2020.June.07. 13:51:46 »
Bocs! Elfuseráltam a mondatot. Igazából ez szeretett volna lenni: lehet hogy nem különböznek eléggé egymástól, hogy érdemes legyen külön sorokba kihozni őket és változókban paramétert átadni.
Megcsinálhatom, de annak mi lenne az előnye, miért lenne jobb úgy, mint most? A változóknak az értékadás kevesebb helyet foglalna, mint a SOUND utasítás a programban? Leírva a sound utasítás a paraméterekkel tényleg hosszú, de tokenizált formában vagy Zzzippel fordítva nem tudom, kisebb lenne-e úgy a program. De attól még lehet.
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 szipucsu

  • EP addict
  • *
  • Posts: 8479
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 77.0 Firefox 77.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dots and Gems
« Reply #44 on: 2020.June.07. 14:15:07 »
Az üres "case else" ág se kell, ha nincs ott semmilyen utasítás, valamint szerintem case szerkezetből "ki-goto-zni" se elegáns megoldás.
A CASE ELSE szerintem kell, mert ha olyan eset lenne, amihez nincs CASE, akkor No case selected hibaüzenet lenne belőle. Így a case else minden egyéb esetről gondoskodik, amiről előtte nem volt szó. Ha nincs utána semmit, akkor nem csinál semmit az egyéb esetekben.

Na, ezt nem tudom, hogy ezt a GOTO-zást mikor lehet, mikor nem. Régebben volt szó valamilyen eljárásról, amiből nem szabad kiugrani, de már nem tudom, melyikről. Biztos, hogy a SELECT-CASE is ilyen? Nekem a DO-LOOP rémlik, hogy ha nem jut el a LOOP-ig, de elölről kezdődik a DO, akkor előbb-utóbb besokall és lefagy a program. De milyen eljárásoknál van ez így? Szerintem nem mindnél. Úgy emlékszem, DEF-ből sem ugrálhatunk ki.

Persze, GOTO-t használni csak legvégső esetben kéne, komoly programozó nem használ ilyet. Még ez a program is egy 20-30 évvel ezelőtti programom továbbfejlesztésének a továbbfejlesztése, így megvannak benne a tapasztalatlan programozásom maradványai, amiket már pár éve is folyamatosan irtottunk egy korábbi programban, de nehezen akarnak elfogyni. :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