image of READY prompt

Wang2200.org

Listing of file='22002200' on disk='vmedia/games-droz01.wvd.zip'

# Sector 778, program filename = '22002200'
0000 DEFFN'0 "PRINT HEX(03):LISTSD10,";HEX(0D)
0001 DEFFN' 16"SCRATCHT";HEX(22);"22002200";HEX(22);":SAVET()";HEX(22);"220022
     00";HEX(220D)
0002 DEFFN'126"PRINT HEX(03): LISTSD   0 ,"
0003 DEFFN M(N)=3*N^2-2*N^3
0010 REM 22002200  RELEASE 1.2  (09/18/80)
0020 DIM A$(3)124,B$(3)124,X$2,W$2,L$2,T$2,V$2,I$1,J$1,K$1
0030 PRINT HEX(0202020F03)
   : F,S,E1,E2,E3,E4,E5,E6,E7,E8,E9,E0,C5,C6=0
   : A,B=1
   : C,D,C1,D1=3
   : V$=HEX(C0C0)
   : R1$=HEX(F7FB)
   : R2$=HEX(FFFF)
   : R3$=HEX(F7FB)
   : A1=-1
   : A2=24
   : H=79
   : C$="COMPUTER 1"
0040 PRINT HEX(0306);AT(0,22);"COMPUTER 1 VERSES COMPUTER 2"
   : PRINT
0050 PRINT
   : E$="1000"
   : LINPUT "SELECT SPEED: 0<=E<=1000",E$
   : CONVERT E$ TO E
   : ERRORGOTO 50
0060 IF E<0 OR E>1000 THEN 50
0070 PRINT AT(5,0);
   : J1$="30"
   : LINPUT "SELECT DISPLAY DURATION: 0<=D<=100",J1$
   : CONVERT J1$ TO J1
   : ERRORGOTO 70
0080 IF J1<0 OR J1>100 THEN 70
0090 GOSUB 590
0100 IF R$<>"DE" THEN GOSUB 560
0110 KEYIN I$,110,110
   : RETURN  CLEAR  ALL
   : T$=HEX(0000)
   : V,F1,F2,C3,C7=0
   : A,B=1
   : X,W=22
   : IF R$="DE" THEN X,W=23
   : Y=17
   : Z=61
   : IF R$="DE" THEN PRINT HEX(0306);BOX (24,79);
   : C=C1
   : D=D1
   : J$="Q"
   : H=79
0120 IF R$<>"DE" THEN GOSUB 580
0130 A$(),B$()=ALL(00)
   : STR(A$(),,1),STR(B$(),,1)=BIN(23)
   : STR(A$(),2,1)=BIN(17)
   : STR(B$(),2,1)=BIN(61)
   : STR(A$(),3)=A$()
   : STR(B$(),3)=B$()
   : STR(A$(),2*C+1),STR(B$(),2*D+1)=ALL(00)
0140 X=X-1
   : IF X=A1 THEN 740
   : GOSUB 410
   : GOTO 220
0150 Y=Y-2
   : IF Y=-1 THEN 740
   : GOSUB 410
   : GOTO 220
0160 X=X+1
   : IF X=A2 THEN 740
   : GOSUB 410
   : GOTO 220
0170 Y=Y+2
   : IF Y=79 THEN 740
   : GOSUB 410
   : GOTO 220
0180 W=W-1
   : IF W=A1 THEN 640
   : GOSUB 450
   : GOTO 300
0190 Z=Z-2
   : IF Z=-1 THEN 640
   : GOSUB 450
   : GOTO 300
0200 W=W+1
   : IF W=A2 THEN 640
   : GOSUB 450
   : GOTO 300
0210 Z=Z+2
   : IF Z=79 THEN 640
   : GOSUB 450
   : GOTO 300
0220 IF E=1000 THEN 230
   : FOR J=1 TO 1000-E
   : $BREAK 1
   : NEXT J
0230 IF H<79 THEN 250
   : C2=C2+1
   : IF C2>20*RND(1) THEN 690
   : GOTO 290
0240 REM TARGET SEEKING CODE
0250 IF W=G AND Z=H THEN 290
   : IF B=1 OR B=3 THEN 260
   : IF W=G AND B=3+SGN(H-Z) THEN 290
   : IF W=G THEN 280
   : F1=1
   : IF G>W THEN B=3
   : ELSE B=1
   : GOTO 290
0260 IF Z=H AND B=2+SGN(G-W) THEN 290
   : IF Z=H THEN 270
   : F1=1
   : IF Z>H THEN B=2
   : ELSE B=4
   : GOTO 290
0270 F1=1
   : IF Z>39 THEN B=2
   : ELSE B=4
   : GOTO 290
0280 F1=1
   : IF W>12 THEN B=1
   : ELSE B=3
0290 RETURN  CLEAR  ALL
   : ON B GOTO 180,190,200,210
0300 IF H<79 THEN 310
   : C4=C4+1
   : IF C4>20*RND(1) THEN 790
   : GOTO 350
0310 IF X=G AND Y=H THEN 350
   : IF A=1 OR A=3 THEN 320
   : IF X=G AND A=3+SGN(H-Y) THEN 350
   : IF X=G THEN 340
   : F2=1
   : IF G>X THEN A=3
   : ELSE A=1
   : GOTO 350
0320 IF Y=H AND A=2+SGN(G-X) THEN 350
   : IF Y=H THEN 330
   : F2=1
   : IF Y>H THEN A=2
   : ELSE A=4
   : GOTO 350
0330 F2=1
   : IF Y>39 THEN A=2
   : ELSE A=4
   : GOTO 350
0340 F2=1
   : IF X>12 THEN A=1
   : ELSE A=3
0350 IF 1001*RND(1)<985 THEN 400
0360 PRINT AT(G,H);V$;
0370 G=INT(22*RND(1))+1
   : H=2*INT(39*RND(1))+1
0380 IF R$<>"DE" THEN GOSUB 570
0390 T$=BIN(G)
   : STR(T$,2)=BIN(H)
   : MAT SEARCH STR(A$(),,2*C),=T$ TO L$ STEP 2
   : IF L$<>HEX(0000) THEN 370
   : MAT SEARCH STR(B$(),,2*D),=T$ TO L$ STEP 2
   : IF L$<>HEX(0000) THEN 370
   : PRINT AT(G,H);R1$;
0400 RETURN  CLEAR  ALL
   : ON A GOTO 140,150,160,170
0410 X$ = BIN(X)
   : STR(X$,2)=BIN(Y)
   : IF X$=T$ THEN GOSUB 490
0420 MAT SEARCH STR(A$(),,2*C),=X$ TO L$ STEP 2
   : IF L$<>HEX(0000) THEN GOTO 740
   : MAT SEARCH STR(B$(),,2*D),=X$ TO L$ STEP 2
   : IF L$<>HEX(0000) THEN GOTO 740
0430 MAT COPY -STR(A$(),,2*C) TO -STR(A$(),,2*C+2)
   : STR(A$(),,1) = BIN(X)
   : STR(A$(),2,1)=BIN(Y)
0440 F2=0
   : C7=0
   : PRINT AT(X,Y);R2$;AT(VAL(STR(A$(),2*C+1,1)),VAL(STR(A$(),2*C+2,1)));V$;
   : RETURN
0450 W$ = BIN(W)
   : STR(W$,2)=BIN(Z)
   : IF W$=T$ THEN GOSUB 500
0460 MAT SEARCH STR(B$(),,2*D),=W$ TO L$ STEP 2
   : IF L$<>HEX(0000) THEN GOTO 640
   : MAT SEARCH STR(A$(),,2*C),=W$ TO L$ STEP 2
   : IF L$<>HEX(0000) THEN GOTO 640
0470 MAT COPY -STR(B$(),,2*D) TO -STR(B$(),,2*D+2)
   : STR(B$(),,1) = BIN(W)
   : STR(B$(),2,1)=BIN(Z)
0480 F1=0
   : C3=0
   : PRINT AT(W,Z);R3$;AT(VAL(STR(B$(),2*D+1,1)),VAL(STR(B$(),2*D+2,1)));V$;
   : RETURN
0490 H=79
   : T$=HEX(FFFF)
   : K=INT(17*RND(1))
   : F=F+5
   : C=C+INT(K/4)+1
   : RETURN
0500 H=79
   : T$=HEX(FFFF)
   : K=INT(17*RND(1))
   : S=S+5
   : D=D+INT(K/4)+1
   : RETURN
0510 FOR J=1 TO J1
   : $BREAK 255
   : NEXT J
   : PRINT HEX(0306);AT(0,0),"COMPUTER 1 TRAPPED ITSELF!"
   : C5=C5+1
   : F=F-20
   : GOTO 530
0520 FOR J=1 TO J1
   : $BREAK 255
   : NEXT J
   : PRINT HEX(0306);AT(0,0),"COMPUTER 2 TRAPPED ITSELF!"
   : C6=C6+1
   : S=S-20
0530 PRINT
   : PRINT "COMPUTER 1    ";F;"       COMPUTER 2    ";S;
   : FOR J=1 TO J1
   : $BREAK 255
   : NEXT J
0540 GOTO 110
0550 DEFFN'31
   : LOAD T"START"
0560 A1=0
   : A2=23
   : V$=HEX(2020)
   : R1$=HEX(8B)
   : R2$=HEX(58)
   : R3$=HEX(4F)
   : RETURN
0570 G=INT(21*RND(1))+1
   : H=2*INT(39*RND(1))+1
   : RETURN
0580 PRINT HEX(0306)
   : FOR J=0 TO 23
   : PRINT AT(J,79);HEX(86);
   : NEXT J
   : FOR J=79 TO 0 STEP -1
   : PRINT AT(23,J);HEX(2D);
   : NEXT J
   : FOR J=23 TO 0 STEP -1
   : PRINT AT(J,0);HEX(86);
   : NEXT J
   : FOR J=0 TO 79
   : PRINT AT(0,J);HEX(2D);
   : NEXT J
   : RETURN
0590 KEYIN Q6$,590,590
0600 PRINT HEX(0208090F)
   : Q8=0
   : Q9=190
   : Q6$,Q7$=" "
0610 KEYIN Q7$,620,620
   : IF Q8>Q9 THEN 630
   : Q8=Q8+1
   : GOTO 610
0620 Q6$=Q6$&Q7$
   : IF Q7$<>HEX(0D) THEN 610
0630 IF STR(Q6$,,8)=" *2236DE" THEN R$="DE"
   : ELSE R$="D"
   : RETURN
0640 REM RESTORE SNAKE
   : ON B GOTO 650,660,670,680
0650 W=W+1
   : GOSUB 720
   : GOTO 690
0660 Z=Z+2
   : GOSUB 720
   : GOTO 690
0670 W=W-1
   : GOSUB 720
   : GOTO 690
0680 Z=Z-2
   : GOSUB 720
0690 REM CHANGE DIRECTION RANDOMLY, FAVORING CENTRALIZATION
   : F1=1
   : C2=0
   : IF B=1 OR B=3 THEN 710
0700 IF RND(1)<FNM((24-W)/24) THEN B=3
   : ELSE B=1
   : GOTO 290
0710 IF RND(1)<FNM((79-Z)/79) THEN B=4
   : ELSE B=2
   : GOTO 290
0720 W$=BIN(W)
   : STR(W$,2)=BIN(Z)
   : IF F1=1 THEN 730
   : RETURN
0730 C3=C3+1
   : IF C3=4 THEN 520
   : B=MOD(B,4)+1
   : GOTO 290
0740 REM RESTORE SNAKE
   : ON A GOTO 750,760,770,780
0750 X=X+1
   : GOSUB 820
   : GOTO 790
0760 Y=Y+2
   : GOSUB 820
   : GOTO 790
0770 X=X-1
   : GOSUB 820
   : GOTO 790
0780 Y=Y-2
   : GOSUB 820
0790 REM CHANGE DIRECTION RANDOMLY, FAVORING CENTRALIZATION
   : F2=1
   : C4=0
   : IF A=1 OR A=3 THEN 810
0800 IF RND(1)<FNM((24-X)/24) THEN A=3
   : ELSE A=1
   : GOTO 400
0810 IF RND(1)<FNM((79-Y)/79) THEN A=4
   : ELSE A=2
   : GOTO 400
0820 X$=BIN(X)
   : STR(X$,2)=BIN(Y)
   : IF F2=1 THEN 830
   : RETURN
0830 C7=C7+1
   : IF C7=4 THEN 510
   : A=MOD(A,4)+1
   : GOTO 400