Breakout in zehn Zeilen (Atari) Basic…

Einer der letzten Artikel die ich hier im Blog zum Thema Basic im allgemeinen geschrieben habe, hat mich angefixt und es wieder einmal selbst zu versuchen….

Ausschlaggebend war der unter [1] thematisierte und verlinkte Vid- Cast. Es ging darum, auf einem C64, in Basic, einen kleine Ball über den Bildschirm hüpfen zu lassen. Motivation: 1 Zeile Basic muss genügen! Zum „Zeilen- Sparen“ wurde eine Technik angewandt, die meines Wissens ihren Ursprung in der erste Hälfte der 1980er Jahre hatte, nämlich der Ersatz von IF…THEN… Anweisungen durch „True/ False“ Logik. Wann dass das erste Mal so gemacht wurde, weis ich nicht.Aber, für mich handelt es sich dabei um einen ziemlich clevern Hack. Beispiel:

Aus :

If X<40 THEN X=X+1 

wird:

X=X+(X<40)

In einem früheren Blog Eintrag [2] habe ich mein Spiel Racer vorgestellt. dort habe ich die oben erwähnte Methode angewandt und auch gezeigt, wie ich das erste Mal auf diese Technik gestoßen bin, ohne die zu verstehen (das war im Handbuch zum Atari 600 XL, ein kleines Beispiel Listing, näheres dazu, wie gesagt, im verlinkte Blog Eintrag)

Mitten im Spiel….

0 GRAPHICS 2:PRINT #6;“ BrEaKoUt“:? „LAST SCORE:“;S:? „FIRE TO START“:SETCOLOR 0 ,9,9:SETCOLOR 4,0,13 1 POKE 755,0:SETCOLOR 2,0,13:S=STRIG(1):POKE 53278,1:IF S=1 THEN GOTO 1 2 GRAPHICS 0:POKE 755,0:PX=0:PY=10:L=1:X=5:Y=10:DX=1:DY=1:S=0:A=PEEK(88)+PEEK(89 )*256:FOR D=0 TO 21 STEP 3 3 POSITION 26,D:? “ „:NEXT D:SETCOLOR 2,0,0 4 POKE A+XO+YO*40,0:XO=X:YO=Y:X=X+DX*L:Y=Y+DY:S=S+(PEEK(A+X+Y*40)=89):R=RND(0)*1 0:POSITION 0,22:? #6;“SCORE:“;S 5 L=L+(PEEK(A+X+Y*40)=89 OR X<3 OR Y<2 OR Y>17)*(R>2):IF L=3 THEN L=1 6 DX=DX*((X>2 AND X<38)+(X>=38 OR X<=2)*-1)*(((PEEK(A+X+Y*40)=89)*-1)+(PEEK(A+X+ Y*40)=0)) 7 DY=DY*((Y>0 AND Y<20)+(Y>=20 OR Y<=0)*-1):POKE A+X+Y*40,84:PY=PY+(STICK(0)=7 A ND PY<20) 8 PY=PY-(STICK(0)=11 AND PY>1):POKE A+PX+PY*40,86:POKE A+PX+(PY+1)*40,86:POKE A+ PX+(PY-1)*40,86 9 POKE A+PX+(PY-2)*40,0:POKE A+PX+(PY+2)*40,0:IF X<3 AND (Y<(PY-2) OR Y>(PY+2)) THEN GOTO 0 10 GOTO 4

Atari Basic Programm Listing.

[1] Vid- Cast. C64 Basic, Ball- Demo

[2] Racer. Atari Basic Ten- Liner


Hinterlasse einen Kommentar