Sharp PC-E500 Trotter
Trotter
Die Umsetzung des Spiels Trotter
trotter.txt (5.590 Bytes)
10 REM Trotter, von Dietmar Struwe Januar 2011
15 REM Spieltaste ist das M
20 CLEAR :CLS :GOSUB *DATEN
25 GOSUB *INTRO
30 LEV = 1
35 *START:CLS : A11$=A2$: X=14: Y1=22: Y2=30: ZAE=1: H=-6: HA=1:ZUF=RND 11
40 LINE (0,0)-(239,31),21845,B: GOSUB *MUSIK
45 IF LEV=1 THEN GCURSOR (70,9):GPRINT LEU$:GCURSOR (130,9):GPRINT LEU$: GCURSOR (200,9):GPRINT LEU$
50 IF LEV=2 THEN GCURSOR (40,9):GPRINT LEU$:GCURSOR (100,9):GPRINT LEU$:GCURSOR (160,9):GPRINT LEU$
55 IF LEV=4 THEN GCURSOR (225,12):GPRINT ZIE$
60 IF LEV>1 THEN GCURSOR (2,22):GPRINT TUR1$:GCURSOR (2,30):GPRINT TUR2$
65 GCURSOR (200,30):GPRINT SCHL$:GCURSOR (228,22):GPRINT TUR1$:GCURSOR (228,30):GPRINT TUR2$
70 GCURSOR (X,Y1):GPRINT A1$:GCURSOR (X,Y2):GPRINT A11$
75 *SPIEL
80 IF INKEY$ ="M" THEN GOSUB *SUB
85 IF LEV=1 THEN GOSUB *LEV1
90 IF LEV=2 THEN GOSUB *LEV2
95 IF LEV=3 THEN GOSUB *LEV3
100 IF LEV=4 THEN GOSUB *LEV4
105 H=H+HA
110 IF H = 8 THEN HA=HA*(-1)
115 IF H =-6 THEN HA=HA*(-1)
120 IF X=200 THEN BEEP 1
125 IF X > 237 THEN GOTO *WIN
130 GOTO *SPIEL
135 *LEV1
140 IF X < 56 THEN GCURSOR (40,7+H): GPRINT H1$:GCURSOR (40,15+H): GPRINT H2$
145 IF 30<X AND X<55 AND 14<12+H THEN GOTO *LOOSE
150 IF X > 80 AND X < 116 GCURSOR (100,7+H): GPRINT H1$:GCURSOR (100,15+H): GPRINT H2$
155 IF 90<X AND X<115 AND 14<12+H THEN GOTO *LOOSE
160 IF X > 140 AND X < 176 THEN GCURSOR (160,7+H): GPRINT H1$:GCURSOR (160,15+H): GPRINT H2$
165 IF 150<X AND X<175 AND 14<12+H THEN GOTO *LOOSE
170 RETURN
175 *LEV2
180 IF X>60 AND X<80 THEN GCURSOR (75,13+H):GPRINT SPIN$
185 IF 64<X AND X<78 AND 14<12+H THEN GOTO *LOOSE
190 IF X>120 AND X<140 THEN GCURSOR (135,13+H):GPRINT SPIN$
195 IF 124<X AND X<138 AND 14<12+H THEN GOTO *LOOSE
200 IF X>185 AND X< 205 THEN GCURSOR (200,13+H): GPRINT SPIN$
205 IF 189<X AND X<203 AND 14<12+H THEN GOTO *LOOSE
210 RETURN
215 *LEV3
220 IF X < 56 THEN GCURSOR (40,7+H): GPRINT H1$:GCURSOR (40,15+H): GPRINT H2$
225 IF 30<X AND X<55 AND 14<12+H THEN GOTO *LOOSE
230 IF X>60 AND X<80 THEN GCURSOR (75,13+H):GPRINT SPIN$
235 IF 64<X AND X<78 AND 14<12+H THEN GOTO *LOOSE
240 IF X > 80 AND X < 116 GCURSOR (100,7+H): GPRINT H1$:GCURSOR (100,15+H): GPRINT H2$
245 IF 90<X AND X<115 AND 14<12+H THEN GOTO *LOOSE
250 IF X>120 AND X<140 THEN GCURSOR (135,13+H):GPRINT SPIN$
255 IF 124<X AND X<138 AND 14<12+H THEN GOTO *LOOSE
260 IF X > 140 AND X < 176 THEN GCURSOR (160,7+H): GPRINT H1$:GCURSOR (160,15+H): GPRINT H2$
265 IF 150<X AND X<175 AND 14<12+H THEN GOTO *LOOSE
270 IF X>185 AND X< 205 THEN GCURSOR (200,13+H): GPRINT SPIN$
275 IF 189<X AND X<203 AND 14<12+H THEN GOTO *LOOSE
280 RETURN
285 *LEV4:IF X=14 THEN GOSUB *BAB
290 GCURSOR (25+(15*ZUF),B):GPRINT PRE$
295 IF (14+(15*ZUF))<X AND X<((15*ZUF)+30) AND 15<B THEN GOTO *LOOSE
300 B=B+BA
305 IF B=21 THEN BA=BA*(-1)
310 IF B=13 THEN BA=BA*(-1):ZUF=RND 11
315 RETURN
320 *BAB:FOR F=40 TO 190 STEP 15:GCURSOR (F,13):GPRINT PRE$:NEXT F
325 LINE (38,1)-(202,5),B:LINE (40,3)-(200,3): B=13:BA=1
330 RETURN
335 *WIN:CLS : LINE (79,0)-(156,31),21845,B:GCURSOR (111,10):GPRINT A1$:GCURSOR (111,18):GPRINT A11$
340 GCURSOR (112,26):GPRINT SAUL$
345 LEV=LEV+1
350 FOR F = 1 TO 5:
355 FOR I=150 TO 1 STEP -5:BEEP 1,I,4:NEXT I
360 NEXT F:IF LEV<=4 THEN GOTO *START
365 FOR I=250 TO 1 STEP -5:BEEP 1,I,20:NEXT I
370 IF INKEY$ <>"" THEN GOTO 25
375 GOTO 370
380 *SUB:X=X+2:ZAE=ZAE+1
385 IF ZAE=2 THEN A11$=A3$
390 IF ZAE=3 THEN A11$=A4$
395 IF ZAE=4 THEN A11$=A3$
400 IF ZAE=5 THEN A11$=A2$: ZAE = 1
405 GCURSOR (X,Y1):GPRINT A1$:GCURSOR (X,Y2):GPRINT A11$
410 RETURN
415 *LOOSE:FOR I=1 TO 150 STEP 5:BEEP 1,I,4:NEXT I
420 CLS :GCURSOR (111,10):GPRINT A1$:GCURSOR (111,18):GPRINT A11$:GCURSOR (112,26):GPRINT SAUL$
425 A=80,B=140:LINE (79,0)-(156,31),21845,B
430 GCURSOR (A,10):GPRINT SVL1$:GCURSOR (A,18):GPRINT SVL2$
435 GCURSOR (B,10):GPRINT SVR1$:GCURSOR (B,18):GPRINT SVR2$
440 IF A<102 THEN A=A+2:B=B-2:BEEP 1,-250+(A*4),10:GOTO 430
445 IF INKEY$ <>"" THEN GOTO 25
450 GOTO 445
455 *MUSIK:FOR N = 1 TO 13:BEEP 1,MUS(N),35: NEXT N : RETURN
460 *INTRO:CLS :A11$=A4$:LINE (0,0)-(239,31),21845,B:LOCATE 13,1:PRINT "T R O T T E R"
465 GCURSOR (35,10):GPRINT A1$:GCURSOR (35,18):GPRINT A11$:GCURSOR (36,26):GPRINT SAUL$
470 GCURSOR (190,10):GPRINT A1$:GCURSOR (190,18):GPRINT A11$:GCURSOR (191,26):GPRINT SAUL$
475 IF INKEY$ <>"" THEN RETURN
480 GOTO 475
485 *DATEN
490 A1$ ="0000000004BEFEF6BF13" : REM Kopf mit Oberkoerper
495 A2$ ="000000000F1FF8F79F0F" : REM Unterkoerper stehen
500 A3$ ="0000000CEFFFBF5BF7EF8C" : REM Unterkoerper kleiner Schritt
505 A4$ ="00000CCEE7BF3F1F3F77CE6C" : REM Unterkoerper grosser Schritt
510 H1$ ="000003827B0E0B8A4F7A8302030000": REM Hose
515 H2$ ="00203E2122223C20222124232121223C20": REM Schuh zur Hose
520 SCHL$="0609052A5020": REM Schluessel
525 TUR1$="FC0202010101018202FC": TUR2$="7F80808080808186817F": REM Tuer
530 SAUL$= "0689FF81FF8181FF81FF8906": REM Saeule
535 SPIN$="0A6A141F146A0A": REM Spinne
540 IGL$= "082A1C7F1C2A08": REM Igel
545 SVL1$="C040C000008080808040B824420202FF": REM Schuh von links kommend 1
550 SVL2$="2A353F09091F101011222059444444FF": REM Schuh von links kommend 2
555 SVR1$="FF02024224B840808080800000C040C0": REM Schuh von rechts kommend 1
560 SVR2$="FF4444445920221110101F09093F352A": REM Schuh von rechts kommend 2
565 PRE$="607F606F6060607F60": REM Presse/Stempel
570 ZIE$="C8A89800F800F8A88800F88080": REM Ziel
575 LEU$="2078A080403F4080A07820": REM Leuchter
580 DIM MUS(26)
585 FOR F = 1 TO 13: READ MUS(F): NEXT F
590 DATA 100,86,75,69,59,86,59,42,59,42,59,86,59
595 RETURN
(c) by mani.becker@web.de - http://blog.manib.bplaced.net