|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 4352 (0x1100) Types: TextFile Names: »zombi«
└─⟦245f7a971⟧ Bits:30003044 Eksempler på underholdningsprogrammer og spil på Piccolo └─ ⟦this⟧ »zombi«
0010 ENABLE fejl 0020 // >>>>>> ZOMBIE <<<<<< 0030 DIM zombie$ OF 6,svar$ OF 3 0040 RANDOMIZE 0050 DIM p(12,22),z1(11),z2(11) 0060 zombie$:="ZOMBIE" 0070 REPEAT 0080 PRINT CHR$(12) 0090 FOR i:=1 TO 6 DO 0100 PRINT AT(i+19,i+2);zombie$(i:i) 0110 NEXT i 0120 PRINT AT(20,7);"#";AT(20,8);"##" 0130 PRINT AT(42,3);"Du er netop nødlandet på ZOMBIE" 0140 PRINT AT(42,4);"øen." 0150 PRINT AT(42,6);"Din eneste chance for at overleve" 0160 PRINT AT(42,7);"er at lokke alle zombierne i" 0170 PRINT AT(42,8);"faldgruber." 0180 PRINT AT(42,10);"Du kan angive din bevægelsesret-" 0190 PRINT AT(42,11);"ning således:" 0200 PRINT AT(54,13);"781" 0210 PRINT AT(54,14);"6X2" 0220 PRINT AT(54,15);"543" 0230 // *** initialiser array p *** 0240 FOR i:=1 TO 22 DO 0250 p(1,i):=-1; p(12,i):=-1 0260 NEXT i 0270 FOR i:=1 TO 22 DO 0280 PRINT AT(i+12,21);"O" 0290 p(2,i):=0; p(3,i):=0; p(4,i):=0; p(5,i):=0; p(6,i):=0 0300 NEXT i 0310 FOR i:=1 TO 22 DO 0320 PRINT AT(i+12,10);"O" 0330 p(7,i):=0; p(8,i):=0; p(9,i):=0; p(10,i):=0; p(11,i):=0 0340 NEXT i 0350 FOR i:=1 TO 12 DO 0360 p(i,22):=-1; p(i,1):=-1 0370 PRINT AT(34,i+9);"O" 0380 NEXT i 0390 FOR i:=1 TO 12 DO 0400 PRINT AT(13,i+9);"O" 0410 NEXT i 0420 RANDOMIZE 0430 // *** placer huller *** 0440 FOR i:=1 TO 20 DO 0450 x:=RND(1,21); y:=RND(1,11) 0460 p(y,x):=-1 0470 PRINT AT(x+12,y+9);"O" 0480 NEXT i 0490 zombies:=0 0500 // *** placer zombier *** 0510 n:=INT(RND*6+5) 0520 FOR i:=1 TO n DO 0530 x:=RND(1,21); y:=RND(1,11) 0540 IF p(y,x)=0 THEN 0550 zombies:=zombies+1 0560 p(y,x):=i 0570 z1(i):=x; z2(i):=y 0580 PRINT AT(x+12,y+9);"Z" 0590 ELSE 0600 z1(i):=0 0610 ENDIF 0620 NEXT i 0630 // *** placer spiller *** 0640 REPEAT 0650 you1:=RND(1,21); you2:=RND(1,11) 0660 UNTIL p(you2,you1)=0 0670 PRINT AT(you1+12,you2+9);"X" 0680 // *** spillet starter *** 0690 REPEAT 0700 PRINT AT(20,23);CHR$(30); 0710 INPUT "Retning? ": r 0720 PRINT AT(you1+12,you2+9);" " 0730 you1:=you1+(r MOD 4<>0)-2*(4<r AND r<8) 0740 you2:=you2+((r-2) MOD 4<>0)-2*(r=1 OR r>6) 0750 PRINT AT(you1+12,you2+9);"X" 0760 IF p(you2,you1)=-1 THEN 0770 PRINT AT(you1+12,you2+9); 0780 PRINT "O";CHR$(8);"X";CHR$(8);"O";CHR$(8);"X";CHR$(8);"O" 0790 PRINT AT(42,18);"På hovedet i afgrunden ---" 0800 ENDIF 0810 // *** flyt zombier *** 0820 FOR i:=1 TO n DO 0830 IF z1(i)<>0 THEN 0840 PRINT AT(z1(i)+12,z2(i)+9);" " 0850 p(z2(i),z1(i)):=0 0860 z1(i):=z1(i)-SGN(z1(i)-you1) 0870 z2(i):=z2(i)-SGN(z2(i)-you2) 0880 PRINT AT(z1(i)+12,z2(i)+9); 0890 IF p(z2(i),z1(i))<>0 THEN 0900 IF p(z2(i),z1(i))=-1 THEN 0910 PRINT "Z";CHR$(8);"O";CHR$(8);"Z";CHR$(8);"O" 0920 ENDIF 0930 z1(i):=0 0940 zombies:=zombies-1 0950 ELSE 0960 p(z2(i),z1(i)):=i 0970 PRINT "Z" 0980 ENDIF 0990 ENDIF 1000 NEXT i 1010 IF zombies=0 THEN 1020 PRINT AT(42,18);"GODT KLARET --- zombierne er uddøde" 1030 PRINT AT(42,19);"Du er reddet ---" 1040 ENDIF 1050 IF p(you2,you1)>0 THEN 1060 PRINT AT(you1+12,you2+9); 1070 PRINT "Z";CHR$(8);"X";CHR$(8);"Z";CHR$(8);"X";CHR$(8);"Z" 1080 EXEC pos(42,18) 1090 PRINT "Du er tilintetgjort af en zombie ---" 1100 GOTO nytspil 1110 ENDIF 1120 UNTIL 1=0 1130 nytspil: 1140 INPUT AT(20,23),"nyt spil? ": svar$ 1150 UNTIL svar$<>"ja" 1160 CHAIN "logon" 9900 PROC fejl HANDLER 9910 CASE SYS(0) OF 9920 WHEN 100 9930 CHAIN "logon" 9940 ENDCASE 9950 ENDPROC fejl ▶19◀«eof»