Anfang der 80er Jahre begann man bei V&D in Rijswijk mit dem Verkauf von Heimcomputern. Dort traf ich einige Jungs, die vielleicht zehn Jahre älter waren als ich. Sie programmierten kleine Spiele in BASIC. Wenn sie weg waren, schaute ich mir das Ganze an. Nach einer Weile kannte ich es auswendig, und später, durch kleine Abwandlungen, begann ich langsam auch, es zu verstehen.

Der Code, den ich gefunden habe, ähnelt erstaunlich stark dem, was ich damals selbst geschrieben – oder besser gesagt: abgeschrieben – habe.

Falling Snake

Klicken Sie in den Bildschirm. Leertaste zum Starten und Neustarten, A und D zum Bewegen nach links und rechts.

5 REM SET TO 40X30 CHARS SCREEN
6 SCREEN 0
7 HM$=CHR$(19)

9 REM TITLE SCREEN -----------------
10 REM SET COLORS TO BLACK AND WHITE, CLEAR SCREEN
11 COLOR 1,0: CLS
12 PRINT:PRINT:PRINT:PRINT : REM PRINT TITLE
13 PRINT "             FALLING SNAKE": PRINT: COLOR 15
14 PRINT "   YOU ARE FALLING DOWN A HOLE"
15 PRINT "   AVOID ALL OBSTACLES"
16 COLOR 7: PRINT "   PRESS SPACE TO START"
17 BA$=CHR$(113):BB$=CHR$(119) : REM BALL SYMBOLS
18 COLOR 2,0 : PRINT "    "+BA$
19 PRINT "    "+BA$:PRINT "    "+BA$
20 PRINT "    "+BA$+BA$+BA$+BA$+BA$+BA$+BA$+BA$+BA$;:COLOR 8:PRINT BB$
25 GET A$: IF A$="" GOTO 25 : REM WAIT FOR KEY
35 TS=0 : REM SET TOP SCORE

49 REM START GAME -----------------
50 COLOR 1,0: CLS
51 FOR T=1TO29:PRINT:NEXT
52 BO=29*256:SI=42:            : REM BOTTOMSCREENOFFSET, STONEIMAGE
53 PO=15*256:PI=81:PC=2:PX=20  : REM PLAYEROFFSET, PLAYERIMAGE, PLAYERCOLOR
54 DE=1000                     : REM DELAY VALUE
55 S=0 : REM SET SCORE

199 REM GAME LOOP -----------------
200 GET A$
201 IF A$=CHR$(29) AND PX<40 THEN PX=PX+1 : REM GO RIGHT
202 IF A$=CHR$(157) AND PX>0  THEN PX=PX-1: REM GO LEFT
210 X=INT(RND(1)*40)*2: C=INT(RND(1)*15)+1 : REM GET RANDOM STONE POSITION
211 PE=VPEEK( 0, PO+(PX*2))
212 IF PE=SI THEN GOTO 400
220 VPOKE 0, BO+X, SI: VPOKE 0, BO+X+1, C
221 VPOKE 0, PO+(PX*2), PI: VPOKE 0, PO+(PX*2)+1, PC
296 FOR W=1 TO DE: NEXT : REM DELAY, SLOW DOWN CODE
297 PRINT : S=S+1 : DE=DE-1 : IF DE<0 THEN DE=0
298 GOTO 200

399 REM GAME OVER -----------------
400 IF S>TS THEN TS=S
401 PRINT HM$:PRINT:PRINT:PRINT "             GAME OVER": PRINT
402 PRINT "    SCORE: "+STR$(S);
405 PRINT "    TOP SCORE="+STR$(TS)
410 COLOR 7: PRINT: PRINT "         PRESS SPACE TRY AGAIN" : PRINT:PRINT
420 GET A$
421 IF A$ = "" OR A$=CHR$(29) OR A$=CHR$(157) THEN GOTO 420
422 GOTO 50