taxi_sss.tap
taxi_sss.z80
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)

   10 REM TAXI-SPIEL
   20 REM
   21 CLEAR 20:POKE-4652,32
   22 KI=0
   30 DIM ST$(21)
   40 ST$(0)=""
   50 ST$(1)="                            "
   60 ST$(2)=" H     "
   70 ST$(3)="    TAXI    "
   80 ST$(4)=" H      "
   90 ST$(5)="                         "
  100 ST$(6)="       "
  110 ST$(7)="     H "
  120 ST$(8)="       "
  130 ST$(9)="      "
  140 ST$(10)="                            "
  150 ST$(11)="    H  "
  160 ST$(12)="       "
  170 ST$(13)="      "
  180 ST$(14)="  H              "
  190 ST$(15)="         "
  200 ST$(16)="      "
  210 ST$(17)="                          "
  220 ST$(18)="      "
  230 ST$(19)="      Abflug "
  240 ST$(20)="                  "
  250 ST$(21)=""
  290 DATA 3,6,1,13,2,-1,1,28,-1
  291 DATA 1,2,10,10,70,5,5,1,2,60,15,15,6,5,35,10,11,16,16,35,8,8,28,27,40
  300 X=18:Y=3
  320 DIM X(2),Y(2),XO(2),YO(2),S(2)
  325 DIM AY(4),HY(4),AX(4),HX(4),TA(4)
  330 FOR I=0 TO 2 
  340 READ Y(I),X(I),S(I)
  345 YO(I)=1:XO(I)=0
  350 NEXT I
  351 FOR I=0 TO 4
  352 READ AY(I),HY(I),AX(I),HX(I),TA(I)
  353 NEXT I
  355 EY=19:EX=18
  360 TH=6:TM=598
  370 KO=0:KA=16500:PE=500
  380 BE=0:TA=0
  500 WINDOW:CLS:WINDOW 23,23,38,38
  510 FOR I=0 TO 21
  520 PRINT AT(I,0);ST$(I)
  530 NEXT I
  540 PRINT AT(Y,X);""
  550 FOR I=0 TO 2
  560 PRINT AT(Y(I),X(I));""
  570 NEXT I
  580 PRINT AT(11,31);"Uhrzeit:"
  600 PRINT AT(15,31);"Benzin:"
  620 PRINT AT(19,31);"Kasse:"
  640 PRINT AT(2,34);"TAXI"
  650 PRINT AT(3,33);""
  660 PRINT AT(4,31);" "
  670 PRINT AT(5,30);""
  680 PRINT AT(6,33);"   "
  690 PRINT AT(8,33);"FREI"
 1000 T$=INKEY$
 1010 XO=0:YO=0
 1015 IF T$<>CHR$(8)THEN 1025
 1020 IF PEEK(-5120+Y*40+X-1)=32 THEN XO=-1:ELSE BEEP:KO=KO+1
 1025 IF T$<>CHR$(9)THEN 1035
 1030 IF PEEK(-5120+Y*40+X+1)=32 THEN XO=1:ELSE BEEP:KO=KO+1
 1035 IF T$<>CHR$(10)THEN 1045
 1040 IF PEEK(-5120+(Y+1)*40+X)=32 THEN YO=1:ELSE BEEP:KO=KO+1
 1045 IF T$<>CHR$(11)THEN 1060
 1050 IF PEEK(-5120+(Y-1)*40+X)=32 THEN YO=-1:ELSE BEEP:KO=KO+1
 1060 IF XO=0 AND YO=0 THEN 1110
 1070 PRINT AT(Y,X);" "
 1080 X=X+XO:Y=Y+YO
 1090 IF XO THEN PRINT AT(Y,X);""
 1100 IF YO THEN PRINT AT(Y,X);""
 1101 PE=PE-1
 1102 IF PE/10=INT(PE/10)THEN KF=1
 1103 IF BE=0 THEN 1110
 1104 BE=BE+40
 1110 IF T$<>"E"OR BE>0 THEN 1200
 1115 J=5
 1120 FOR I=0 TO 4
 1130 IF X=AX(I)AND Y=AY(I)AND PEEK(-5120+HY(I)*40+HX(I))=196 THEN J=I:I=4
 1140 NEXT I
 1150 IF J>4 THEN 1200
 1160 PRINT AT(HY(J),HX(J));" "
 1170 PRINT AT(4,36);""
 1180 PRINT AT(8,32);"BESETZT"
 1190 IF J<2 THEN BE=500:ELSE BE=200
 1195 TA=TA(J)
 1200 IF T$<>"A"THEN 1300
 1210 IF BE=0 THEN 1300
 1215 PRINT AT(EY,EX+1);""
 1220 PRINT AT(4,36);" "
 1230 PRINT AT(8,32);"  FREI "
 1250 KA=KA+BE:BE=0:KF=1
 1300 IF T$<>"T"THEN 1500
 1301 IF X<>27 OR(Y<>12 AND Y<>15)THEN 1500
 1310 WINDOW 22,23,0,38
 1320 CLS
 1325 P=INT(PE/10):IF P<>PE/10 THEN PE=10*(P+1)
 1330 INPUT "Wieviel Liter Benzin:";P:P=INT(P)*10
 1340 IF P+PE>500 THEN PRINT "Tank fasst 50 Liter.":GOTO 1330
 1350 KF=KA-P*16
 1360 IF KF<0 THEN PRINT "Dafuer reicht Ihr Geld nicht.":GOTO 1330
 1370 KA=KF:KF=1:PE=PE+P
 1380 CLS:WINDOW 23,23,38,38
 1500 FOR I=0 TO 2
 1510 IF PEEK(-5120+(Y(I)+YO(I))*40+X(I)+XO(I))<>32 THEN 1570
 1520 PRINT AT(Y(I),X(I));" "
 1530 X(I)=X(I)+XO(I):Y(I)=Y(I)+YO(I)
 1540 IF XO(I)THEN PRINT AT(Y(I),X(I));""
 1550 IF YO(I)THEN PRINT AT(Y(I),X(I));""
 1560 GOTO 1600
 1570 IF I=0 AND X=X(I)+XO(I)AND Y=Y(I)+YO(I)THEN 1600
 1580 IF XO(I)THEN YO(I)=XO(I)*S(I):XO(I)=0:GOTO 1600
 1590 XO(I)=-YO(I)*S(I):YO(I)=0
 1600 NEXT I
 1610 IF TA=0 OR KI THEN 1619
 1611 IF BE=0 THEN 1619
 1612 TA=TA-1
 1613 IF TA>0 THEN 1619 
 1614 BE=0:T$="":WINDOW 22,23,0,38:CLS
 1615 PRINT "Gebummelt - Fahrgast weg !";
 1616 PAUSE(30):CLS
 1617 WINDOW 23,23,38,38
 1618 GOTO 1220
 1619 TM=TM+2
 1620 IF TM=600 THEN TH=TH+1:TM=0:KA=KA-1500:KF=1
 1630 IF TM/100<>INT(TM/100)THEN 1670
 1640 FOR I=0 TO 2
 1650 S(I)=-S(I)
 1660 NEXT I
 1665 PRINT AT(EY,EX+1);" "
 1670 IF TM/10<>INT(TM/10)THEN 1700
 1674 PRINT AT(13,30);TH,":",TM/10
 1676 I=INT(RND(1)*20)
 1678 IF I>4 THEN 1700
 1680 IF PEEK(-5120+HY(I)*40+HX(I))=32 THEN T$="":ELSE T$=" "
 1682 PRINT AT(HY(I),HX(I));T$
 1700 IF KO<10 OR KI THEN 1800
 1710 WINDOW 22,23,0,38:CLS
 1720 PRINT "Sie hatten 10 kleine Unfaelle."
 1730 PRINT "Die Reparatur kostet 50 Mark.";
 1740 PAUSE(30)
 1750 KO=KO-10
 1755 KA=KA-5000:KF=1
 1760 CLS:WINDOW 23,23,38,38
 1800 IF KF THEN PRINT AT(21,30);INT(KA/100),"M  "
 1805 IF KF THEN KF=0:PRINT AT(17,30);INT(PE/10),"l "
 1810 IF TH>=17 OR KA<0 OR PE<=0 THEN 2000
 1820 GOTO 1000
 2000 WINDOW 22,23,0,39:CLS
 2005 PRINT AT(4,34);" "
 2006 FOR I=0 TO 30
 2007 BEEP
 2008 NEXT I
 2010 IF PE>0 THEN 2100
 2020 PRINT "Sie haben kein Benzin mehr."
 2030 IF BE THEN PRINT "Ihr Fahrgast ist zu bedauern.";
 2040 IF BE=0 THEN PRINT "Nun schieben Sie Ihr Taxi nach Hause.";
 2050 GOTO 3000
 2100 IF KA>0 THEN 2200
 2110 PRINT "Sie sind Pleite."
 2120 PRINT "Versuchen Sie es mal als Postbote.";
 2130 GOTO 3000
 2200 PRINT "Sie haben ca.";
 2210 KF=KA+PE*16-23000
 2220 PRINT INT(.5+ABS(KF)/100);"Mark";
 2230 IF KF<0 THEN PRINT " Verlust";:ELSE PRINT " Gewinn";
 2240 PRINT " gemacht."
 2250 IF KF<1000 THEN 2300
 2260 PRINT "In";INT(1E8/KF);"Tagen waeren Sie Millionaer.";
 2270 GOTO 3000
 2300 IF KF>=0 THEN 3000
 2305 KF=INT(23000/ABS(KF))
 2310 IF KF>1 THEN PRINT "In";KF;"Tagen";:ELSE PRINT "Morgen";
 2320 PRINT " waeren Sie Pleite.";
 3000 WINDOW
 3010 PAUSE 50
 3020 CLS