Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß) 10 REM * GEISTER 20 REM 30 DIM GX(2),GY(2),OX(2),OY(2) 40 CLEAR 80 50 RE=500 60 WINDOW:CLS 70 PRINT STRING$(39,"") 80 PRINT ""+STRING$(37," ")+"" 90 PRINT " " 100 PRINT " " 110 PRINT " *************** " 120 PRINT " * * " 130 PRINT " * * " 140 PRINT " * Die MAUS * " 150 PRINT " * * " 160 PRINT " * * " 170 PRINT " * im * " 180 PRINT " * * " 190 PRINT " , * * " 200 PRINT " * GEISTER- * " 210 PRINT " o o * * " 220 PRINT " * * " 230 PRINT " *@ * SCHLOSS * " 240 PRINT " * * " 250 PRINT " * * " 260 PRINT " *************** " 270 PRINT " " 280 PRINT " <ENTER> " 290 PRINT ""+STRING$(37," ")+"" 300 PRINT STRING$(38,""); 310 SW=1 320 REM 330 PRINT AT(11,4);"" 340 PRINT AT(14,3);"O O" 350 PRINT AT(16,4);"" 360 PRINT AT(16,7);"" 370 REM 380 PRINT AT(11,4);" " 390 PRINT AT(14,3);"o o" 400 PRINT AT(16,4);" " 410 PRINT AT(16,7);"@" 420 IF INKEY$<>CHR$(13) THEN 320 430 ON SW GOTO 440,630 440 WINDOW 4,19,22,36 450 PRINT AT(23,39);"" 460 PRINT AT(21,30);" " 470 CLS 480 WINDOW 5,18,23,35 490 PRINT "Steuern Sie" 500 PRINT "die Maus ()" 510 PRINT "mit den" 520 PRINT "Kursortasten" 530 PRINT "zum" 540 PRINT "Ausgang (A)." 550 PRINT 560 PRINT "Aber Vorsicht"; 570 PRINT "vor den" 580 PRINT "Geistern ()." 590 PRINT AT(16,22);" " 600 PRINT AT(21,30);"<ENTER>" 610 SW=2 620 GOTO 320 630 PRINT AT(21,30);" " 640 CLS 650 PRINT "Schwierigkeit" 660 PRINT " (1...10)" 670 PRINT 680 DI=0 690 INPUT "Stufe:";DI 700 IF DI>=1 AND DI<=10 AND INT(DI)=DI THEN 740 710 PRINT:PRINT "falsche" 720 PRINT "Eingabe":PRINT 730 GOTO 690 740 TI=250+25*DI 750 WINDOW:CLS 760 PRINT AT(0,0);""+STRING$(37,"")+"" 770 PRINT AT(22,0);""+STRING$(37,"")+"" 780 PRINT AT(11,1);STRING$(37,"") 790 FOR I=1 TO 21 800 PRINT AT(I,0);"":PRINT AT(I,38);"" 810 NEXT I 820 PRINT AT(11,37);" " 830 PRINT AT(0,1);"E":PRINT AT(22,1);"A" 840 PRINT AT(1,1);"" 850 Z=2 860 GOSUB 910 870 Z=13 880 GOSUB 910 890 PRINT AT(23,6);"verbleibende Zeit:",TI 900 GOTO 970 910 FOR I=Z TO Z+7 920 IF I<Z+3 OR I>Z+4 THEN PRINT AT(I,2);STRING$(6," ") 930 IF I=Z+3 THEN PRINT AT(I,2);STRING$(6," ") 940 IF I=Z+4 THEN PRINT AT(I,2);STRING$(6," ") 950 NEXT I 960 RETURN 970 MX=1:MY=1:OS=0:OZ=7:MI=1:MA=10:L=0 980 Z=RND(PEEK(31)) 990 FOR I=0 TO 2 1000 GX(I)=INT(RND(1)*2)*6+12*I+OZ 1010 IF RND(1)>.5 THEN GY(I)=1+OS:OY(I)=-1:ELSE GY(I)=10+OS:OY(I)=1 1020 PRINT AT(GY(I),GX(I));"" 1030 NEXT I 1040 OX(0)=0:OX(1)=-1:OX(2)=-1:OY(1)=0:OY(2)=0 1050 FOR J=OS+1 TO OS+10 STEP 9 1060 BX=INT(RND(1)*6)*6+4 1070 K=PEEK(-5120+40*J+BX) 1080 IF K=32 AND RND(1)*10<DI THEN PRINT AT(J,BX);"" 1090 IF K=161 AND RND(1)*15>DI THEN PRINT AT(J,BX);" " 1100 NEXT J 1110 FOR I=0 TO 2 1120 IF MX=1 AND MY=21 THEN 1770 1130 IF MX=37 AND MY=11 THEN 1470 1140 OX=0:OY=0 1150 E$=INKEY$ 1160 IF LEN(E$)=0 THEN 1250:ELSE E=ASC(E$) 1170 IF E=8 THEN OX=-1 1180 IF E=9 THEN OX=1 1190 IF E=11 THEN OY=-1 1200 IF E=10 THEN OY=1 1210 IF PEEK(-5120+40*(MY+OY)+MX+OX)<>32 THEN 1250 1220 PRINT AT(MY,MX);" " 1230 MY=MY+OY:MX=MX+OX 1240 PRINT AT(MY,MX);"" 1250 IF MY<>MI AND MY<>MA THEN 1270 1260 IF GY(I)=MY THEN OX(I)=SGN(MX-GX(I)):OY(I)=0 1270 IF INT((GX(I)-1)/6)<>(GX(I)-1)/6 THEN 1290 1280 IF GX(I)=MX OR L THEN OY(I)=SGN(MY-GY(I)):OX(I)=0:L=0 1290 IF OY(I)<>0 THEN 1330 1300 IF GX(I)=1 THEN OX(I)=1 1310 IF GX(I)=37 THEN OX(I)=-1 1320 GOTO 1350 1330 IF GY(I)=MI THEN OY(I)=1 1340 IF GY(I)=MA THEN OY(I)=-1 1350 PRINT AT(GY(I),GX(I));" " 1360 GY(I)=GY(I)+OY(I):GX(I)=GX(I)+OX(I) 1370 K=PEEK(-5120+40*GY(I)+GX(I)) 1380 IF K=ASC("") THEN OX(I)=-OX(I):OY(I)=-OY(I):GOTO 1360 1390 PRINT AT(GY(I),GX(I));"" 1400 IF GY(I)=MY AND GX(I)=MX THEN 1540 1410 NEXT I 1420 IF GY(0)=GY(1) AND GY(1)=GY(2) THEN L=1 :ELSE L=0 1430 TI=TI-1 1440 PRINT AT(23,24);TI," " 1450 IF TI=0 THEN 1540 1460 GOTO 1050 1470 IF PEEK(-5120+40*10+37)=ASC("") THEN 1140 1480 FOR I=0 TO 2 1490 PRINT AT(GY(I),GX(I));" " 1500 NEXT I 1510 PRINT AT(10,37);"" 1520 OS=11:OZ=1:MI=12:MA=21 1530 GOTO 990 1540 FOR I=0 TO 7 1550 PRINT AT(MY,MX);"":BEEP:PAUSE(1) 1560 PRINT AT(MY,MX);"":BEEP:PAUSE(1) 1570 PRINT AT(MY,MX);"":BEEP:PAUSE(1) 1580 NEXT I 1590 CLS 1600 PRINT:PRINT:PRINT:PRINT 1610 IF TI>0 THEN 1660 1620 PRINT "Die Geisterstunde ist vobei.":PRINT 1630 PRINT "Sie sind zusammen mit dem Geister-" 1640 PRINT "schloss verschwunden. 1650 GOTO 1670 1660 PRINT "Da hat Sie ein Geist erwischt." 1670 PRINT:PRINT:PRINT 1680 IF MY>11 THEN PRINT "Aber beinahe haetten Sie es geschafft." 1690 IF MY<12 THEN PRINT "Allzu weit sind Sie ja nicht gekommen." 1700 PRINT AT(22,30);"<ENTER>" 1710 PRINT:PRINT:PRINT 1720 TI=1500 1730 TI=TI-1 1740 IF TI=0 THEN 60 1750 IF INKEY$<>CHR$(13) THEN 1730 1760 GOTO 60 1770 PAUSE(2) 1780 PRINT AT(21,1);" " 1790 FOR I=0 TO 10 1800 PRINT AT(22,1);"":BEEP:PAUSE(1) 1810 PRINT AT(22,1);" ":BEEP:PAUSE(1) 1820 NEXT I 1830 CLS 1840 PRINT:PRINT:PRINT 1850 PRINT "Da haben Sie sich ja gerade" 1860 PRINT "noch gerettet." 1870 PRINT:PRINT 1880 TI=TI*(5+DI) 1890 IF TI<=RE THEN 1940 1900 PRINT "Das bisher beste Ergebnis" 1910 PRINT "waren";RE;"Punkte." 1920 RE=TI 1930 PRINT 1940 PRINT "Sie haben";TI;"Punkte erreicht." 1950 GOTO 1700