Steuerung: ⇦ ⇨
Zeile 17 wurde auf PEEK(4) angepasst. Sonst funktioniert es nicht.
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)
1 CLEAR 1000:A1$="HEIMCOMPUTER robotron Z1013"
2 A2$="SPIELE":A9=2
4 A3$="K+SPIEDI"
6 A4$="SPIEDIE"
8 A5$="EIN REAKTIONS-SPIEL"
9 REM (C) 1983 BY T. STAHMER ,2000 HAMBURG 60, PREYSTR. 13
10 REM FUERZ9001:KITTELMANN
12 REM ANSCHRIFT:MKD,1EKG
13 REM DATUM 25.02.1985 VERSION 1.0
14!FUER Z1013 BEARBEIET VON:
15!TH.RICHTER,JENA,08.02.86
16!INITIALWERTE ==============
17 LL=4
18 GOSUB 160
20 W1$=STRING$(32,""):W2$=STRING$(30,""):W3$=STRING$(30,"")
22 W4$=STRING$(30,""):W5$=STRING$(15,"")
90 GOSUB 100:GOTO 1000
96!UNTERPROGRAMME ============
98!TITELBILD -----------------
100 PRINT AT(2,0);A1$:PRINT AT(4,0);"",STRING$(30,""),""
102 PRINT AT(5,0);"":PRINT AT(5,31);""
104 PRINT AT(6,0);"",STRING$(30,""),""
106 PRINT AT(5,1);A2$:PRINT AT(5,20);A3$
108 PRINT AT(8,0);STRING$(32,"")
110 FOR I=9 TO 13:PRINT AT(I,0);"":PRINT AT(I,31);"":NEXT I
112 PRINT AT(14,0);STRING$(32,"")
114 PRINT AT(10,28-LEN(A4$));A4$:PRINT AT(12,28-LEN(A5$));A5$
115 PRINT AT(21,0);"FUER Z1013:TH.RICHTER":PRINT AT(22,12);"JENA"
116 PRINT AT(17,0);"FUER Z9001:HANS KITTELMANN"
117 PRINT AT(18,12);"8019 DRESDEN"
118 PRINT AT(19,12);"HOLBEINSTR.131"
119!>ENTER< -------------------
120 PRINT AT(22,23);">ENTER<"
124 GOSUB 170:IF T=13 THEN PRINT AT(20,19);STRING$(11," "):RETURN
126 GOSUB 130:GOTO 124
129!WIE BITTE ? ---------------
130 PRINT AT(20,19);"WIE BITTE ?":RETURN
149!J/N ABFRAGE ---------------
150 PRINT AT(22,(26-LEN(KY$)));KY$," ? J"
153 GOSUB 170:PRINT AT(22,29);CHR$(T)
154 IF T=74 OR T=13 THEN T=1:PRINT AT(20,19);STRING$(11," "):RETURN
156 IF T=78 THEN T=0:PRINT AT(20,19);STRING$(11," "):RETURN
158 GOSUB 130:PAUSE 10:GOTO 150
159!STANDART-WINDOW -----------
160 WINDOW:CLS:PRINT AT(0,0);" ":RETURN
169!TASTENABFRAGE -------------
170 T$=INKEY$:IF T$=""THEN 170 ELSE T=ASC(T$)
172 RETURN
198!LAUFBILD ------------------
200 GOSUB 160
202 A$(1)=" SSS PPPP III EEEE DD III EEEE"
204 A$(2)="S S P P I E D D I E "
206 A$(3)="S P P I E D D I E "
208 A$(4)=" SSS PPPP I EEE D D I EEE "
210 A$(5)=" S P I E D D I E "
212 A$(6)="S S P I E D D I E "
214 A$(7)=" SSS P III EEEE DD III EEEE"
216 D$=STRING$(16," ")
218 FOR I=1 TO 7:FOR II=1 TO 31
220 PRINT AT(I+5,31-II);LEFT$(A$(I),II):NEXT II:NEXT I
222 IF RR=0 THEN KY$="WOLLEN SIE EINE ANLEITUNG":GOSUB 150:ELSE PAUSE 5:RETURN
224 IF T=0 THEN RETURN:ELSE CLS
226 GOSUB 160
228 PRINT AT(2,0);"SIE HABEN DIE AUFGABE,"
230 PRINT AT(4,0);"DEN BALL O. EINE ANDERE FIGUR,"
232 PRINT AT(6,0);"JE NACH RUNDENZAHL, MIT EINEM"
234 PRINT AT(8,0);"PADDEL ZURUECKZUSCHLAGEN."
236 PRINT AT(10,0);"JE NACH ZAHL DER GETROFFENEN"
238 PRINT AT(12,0);"WANDELEMENTE GIBT ES PUNKTE."
240 PRINT AT(14,0);"BEWEGEN SIE DAS PADDEL MIT "
242 PRINT AT(16,4);"<-- UND -->"
244 PRINT AT(18,0);"VIEL SPASS BEIM 'PADDELN' !!":GOSUB 120:RETURN
246!SPIELFELD ----------------
248 B=-5120:B$="":G$=" ":ZZ=0:Q=0:X=576:DX=-64:Y=14:DY=1
249 Z$=W2$
250 YY=12:Y2=24:R=1:P1=20:ZE=207:Q1=0:PK=0:L$=" ":RR=1:SC=3
251 SC$="***"
252 GOSUB 160
254 PRINT AT(1,0);W1$:FOR I=1 TO 22:PRINT AT(I,0);"":PRINT AT(I,31);""
255 NEXT I
256 PRINT AT(23,0);W1$
258 PRINT AT(21,YY);B$
260 FOR I=5 TO 7:PRINT AT(I,1);Z$:NEXT I
262 RETURN
264 Q=0:Q1=-67:ZE=207:RETURN
266 Q=0:Q1=1:ZE=144:RETURN
268 Q=0:Q1=2:ZE=167:RETURN
270 Q=0:Q1=1:ZE=136:RETURN
272 PRINT AT(15,4);RR,". R U N D E ! ! !"
274 FOR I=1 TO 20:BEEP:PAUSE 1:NEXT I
276 PRINT AT(15,4);STRING$(22," ")
278 RETURN
999!HAUPTPROGRAMM ============
1000 GOSUB 200:GOSUB 248
1002 X9=X:Y9=Y
1004 IF X>256 THEN 1010
1006 IF X=256 AND ABS(DX)=64 THEN DX=DX/2:GOTO 1010
1008 IF X=256 AND ABS(DX)=32 THEN DX=DX*2:GOTO 1010
1010 X=X+DX:IF X<64 OR X>704 THEN DX=-DX:BEEP:GOTO 1010
1012 Y=Y+DY:IF Y<1 OR Y>30 THEN DY=-DY:BEEP:GOTO 1012
1014 IF PEEK(B+X+Y)<>32 AND X<672 THEN 1015:ELSE 1016
1015 POKE B+X+Y,32:POKE B+X+Y-1,32:POKE B+X,199:GOTO 1040
1016 IF PEEK(B+X+Y-32)<>32 AND X>672 THEN DX=-DX:BEEP:GOTO 1010
1018!
1020!
1022! SPRITES !!!
1024!
1026!
1029 POKE B+X9+Y9,32
1030 Q=Q1-Q:POKE B+X+Y,ZE+Q:Y1=YY:A=PEEK(LL):IF A=0 AND X<704 THEN 1002
1031 POKE LL,0
1032 IF A=8 AND YY-3>0 THEN YY=YY-3:GOTO 1038:ELSE IF A=8 THEN YY=1:GOTO 1038
1034 IF A=9 AND YY+3<Y2 THEN YY=YY+3:GOTO 1038:ELSE IF A=9 THEN YY=Y2:GOTO 1038
1035 IF X=704 THEN 1110
1036 GOTO 1002
1038 PRINT AT(21,Y1);L$:PRINT AT(21,YY);B$:IF X=704 THEN 1110:ELSE GOTO 1002
1040 ON(INT(RND(1)*3)+1)GOTO 1042,1044,1046
1042 DX=-DX:BEEP:GOTO 1048
1044 DY=-DY:BEEP:GOTO 1048
1046 DX=-DX:DY=-DY:BEEP:GOTO 1048
1048 PK=PK+INT(RND(1)*P1):IF HI<PK THEN HI=PK
1050 PRINT AT(0,0);"P.:",PK," ",SC$," HI:",HI," "
1052 PRINT AT(0,22);RR,".RUNDE"
1054 ZZ=ZZ+1:IF ZZ=20 THEN ON R GOSUB 264,266,268,270
1056 IF ZZ=40 THEN ZZ=0:ON R GOTO 1062,1072,1078,1084
1058 IF SC>=0 THEN 1016
1060 GOTO 2000
1062 IF SC<3 THEN SC=3:SC$="***"
1064 R=2:RR=RR+1
1066 PRINT AT(21,YY);L$:PRINT AT(21,Y1);L$:B$="":L$=" "
1068 PRINT AT(21,Y1);B$
1070 Z$=W3$:Q=0:Q1=0:ZE=144:P1=30:Y2=27:GOSUB 260:GOSUB 272:ZZ=ZZ-1
1071 GOTO 1050
1072 IF SC<3 THEN SC=3:SC$="***"
1074 R=3:RR=RR+1
1076 Z$=W4$:Q=0:Q1=0:ZE=167:P1=40:GOSUB 260:GOSUB 272:ZZ=ZZ-1:GOTO 1050
1078 IF SC=2 THEN SC=3:SC$="***":ELSE IF SC<2 THEN SC=2:SC$="**"
1080 R=4:RR=RR+1
1082 Z$=W5$:Q=0:Q1=0:ZE=136:P1=50:GOSUB 260:GOSUB 272:ZZ=ZZ-1:GOTO 1050
1084 IF SC<3 THEN SC=SC+1:SC$=SC$+"*"
1086 R=1:RR=RR+1
1088 Z$=W2$:Q=0:Q1=0:ZE=207:P1=30:GOSUB 260:GOSUB 272:ZZ=ZZ-1:GOTO 1050
1090 A$(1)="**************************"
1092 A$(2)="* *"
1094 A$(3)="* NEUES SPIEL? *"
1096 A$(5)="* NEUES GLUECK!! *"
1098 A$(7)="* NICHT VERZAGEN ! *"
1100 A$(4)=A$(2):A$(6)=A$(2):A$(8)=A$(2):A$(9)=A$(1)
1102 FOR I=9 TO 17:PRINT AT(I,3);A$(I-8):NEXT I
1104 KY$="NEUER VERSUCH":GOSUB 150
1106 IF T=1 THEN 1000
1108 GOTO 9000
1110 SC=SC-1:ZZ=ZZ-1:IF SC>=0 THEN SC$=LEFT$(SC$,SC)
1111 FOR I=0 TO 10:BEEP
1112 POKE B+X+Y,32:BEEP:BEEP:POKE B+X+Y,ZE:NEXT I:POKE B+X+Y,217:PAUSE 1
1114 POKE B+X+Y,42:PAUSE 1:POKE B+X+Y,201:PAUSE 1:POKE B+X+Y,138:PAUSE 2
1116 POKE B+X+Y,207:PAUSE 2:POKE B+X+Y,140:PAUSE 2:POKE B+X+Y,141:PAUSE 3
1118 POKE B+X+Y,218:IF Y>1 THEN POKE B+X+Y-1,223
1120 IF Y<30 THEN POKE B+X+Y+1,221
1122 X=X-64:DX=-DX:Y=Y1+1:GOTO 1050
2000 IF RR>1 THEN 2002:ELSE PRINT AT(21,YY);"":PAUSE 3
2001 PRINT AT(21,YY);"":PAUSE 3:PRINT AT(21,YY);" ":PAUSE 3
2002 PRINT AT(21,YY);"":PAUSE 3:PRINT AT(21,YY);"":PAUSE 3
2003 PRINT AT(21,YY);" ":PRINT AT(22,YY);"":PAUSE 3
2004 PRINT AT(21,YY);" ":PRINT AT(22,YY);"":PAUSE 10:GOTO 1090
8999!ENDE ===================
9000 GOSUB 160:PRINT AT(8,0);"AUF WIEDERSEHEN!":PAUSE 50:T$=INKEY$:CLS
10000 FOR I=0 TO 16:PRINT PEEK(I);:NEXT I:PRINT:GOTO 10000