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.)
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