DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦6616bd331⟧ TextFile

    Length: 4352 (0x1100)
    Types: TextFile
    Names: »zombi«

Derivation

└─⟦245f7a971⟧ Bits:30003044 Eksempler på underholdningsprogrammer og spil på Piccolo
    └─ ⟦this⟧ »zombi« 

TextFile

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»