Source Code
10 RAND
30 POKE 16418,2
40 CLS
50 PRINT TAB 10;"""FOX AT DUSK""",,,"TRAP THE FOX SO IT CANNOT MOVE. FOX AND HOUNDS MOVE ONE SPACE DIAGONALLY UP OR DOWN, BUT THE FOX MAY LEAP OVER A HOUND."," ENTER MOVES COLUME FIRST THENTHE ROW..E.G. 11 IS BOTTOM LEFT CORNER.",,
60 PRINT " AT DUSK THE FOX CAN ONLY BE SEEN AT THE GAME START, WHEN IT LEAPS OVER A HOUND, OR WHEN A HOUND TRIES TO MOVE INTO THE SQUARE THAT THE FOX IS IN.",,,,,,,"WOULD YOU PREFER THE EASIER GAMEWHERE YOU SEE THE FOX WHENEVER IT MOVES?"
70 INPUT B$
80 LET I=B$(1)="Y"
90 CLS
100 PRINT AT 4,0;" HOW MANY HOUNDS WOULD YOU LIKETO USE? (FROM THREE TO EIGHT) "
110 INPUT H$
120 IF H$>"8" OR H$<"3" THEN GOTO 110
130 LET H=CODE H$-28
140 FAST
160 DIM A$(8,8)
170 LET B$="A>8 OR A<1 OR B>8 OR B<1"
180 CLS
200 POKE 16418,0
220 FOR A=0 TO 7
230 FOR B=0 TO 2
240 LET D=3*(A-2*INT (A/2))
250 FOR C=0 TO 3
260 PRINT TAB (D+C*6);"\@@\@@\@@";
270 NEXT C
280 NEXT B
290 NEXT A
300 PRINT AT 2,25;"FOX AT";TAB 25;"\''\''\''\''\''\''";TAB 26;"DUSK";TAB 26;"\''\''\''\''"
320 FOR A=1 TO 8
330 FOR B=1 TO 8
340 IF (A+B)/2<>INT ((A+B)/2) THEN LET A$(A,B)="B"
350 NEXT B
360 NEXT A
380 FOR A=1 TO 2
390 FOR B=1 TO 8
400 IF NOT H THEN GOTO 490
410 IF A$(B,A)="B" THEN GOTO 470
420 LET A$(B,A)="H"
430 LET H=H-1
440 LET X=B
450 LET Y=A
460 GOSUB 1250
470 NEXT B
480 NEXT A
490 SLOW
510 LET F=8
520 LET E=2*INT (1+RND*4)
530 LET A$(E,F)="F"
540 GOSUB 1500
560 PRINT AT 7,26;"%M%O%V%E";TAB 26;"%F%R%O%M";AT 10,27;
570 GOSUB 1170
580 LET A=Z
590 GOSUB 1170
600 LET B=Z
610 PRINT AT 12,27;"%T%O";AT 14,27;
620 GOSUB 1170
630 LET C=Z
640 GOSUB 1170
650 LET D=Z
670 IF A$(C,D)="F" THEN GOSUB 1500
690 PRINT AT 7,26;" ";TAB 26;" ";AT 10,27;" ";AT 12,27;" ";AT 14,27;" "
710 IF ABS (A-C)>1 OR ABS (B-D)>1 OR A$(A,B)<>"H" OR A$(C,D)<>" " THEN GOTO 550
730 LET X=A
740 LET Y=B
750 GOSUB 1330
760 LET A$(A,B)=" "
770 LET X=C
780 LET Y=D
790 GOSUB 1250
800 LET A$(C,D)="H"
820 LET M=0
830 FOR W=F-1 TO F+1 STEP 2
840 FOR V=E-1 TO E+1 STEP 2
850 LET A=V
860 LET B=W
880 IF VAL B$ THEN GOTO 1000
890 LET T=0
910 IF A$(A,B)="H" THEN GOTO 1370
930 IF A$(A,B)<>" " THEN GOTO 1000
950 LET T=T+3*RND+(B<F)+(B=1)
960 IF T<M THEN GOTO 1000
970 LET Y=B
980 LET X=A
990 LET M=T
\n1000 NEXT V
\n1010 NEXT W
\n1030 IF NOT M THEN GOTO 1430
\n1050 LET A$(E,F)=" "
\n1060 LET A$(X,Y)="F"
\n1080 LET G=ABS (E-X)>1
\n1090 IF G THEN GOSUB 1500
\n1100 LET E=X
\n1110 LET F=Y
\n1130 IF Y=1 THEN GOTO 1470
\n1150 IF G OR I THEN GOSUB 1500
\n1160 GOTO 550
\n1180 IF INKEY$<>"" THEN GOTO 1180
\n1190 LET C$=INKEY$
\n1200 IF C$="" THEN GOTO 1190
\n1210 IF C$>"8" OR C$<"1" THEN GOTO 1180
\n1220 PRINT C$;
\n1230 LET Z=CODE C$-28
\n1240 RETURN
\n1260 LET Z=3*(X-1)
\n1270 PRINT AT 3*(8-Y),Z;"/ \:.";TAB Z;"% % \: ";TAB Z;"\: \ :"
\n1280 RETURN
\n1300 LET Z=3*(E-1)
\n1310 PRINT AT 3*(8-F),Z;"\:. \.:";TAB Z;"\:'% \':";TAB Z;"\':% \:'"
\n1320 RETURN
\n1340 LET Z=3*(X-1)
\n1350 PRINT AT 3*(8-Y),Z;" ";TAB Z;" ";TAB Z;" "
\n1360 RETURN
\n1380 LET A=V+(V-E)
\n1390 LET B=W+(W-F)
\n1400 IF VAL B$ THEN GOTO 1000
\n1410 LET T=RND
\n1420 GOTO 920
\n1430 GOSUB 1290
\n1440 PRINT AT 8,25;"%Y%O%U %W%O%N"
\n1450 PAUSE 40000
\n1460 GOTO 20
\n1470 GOSUB 1290
\n1480 PRINT AT 8,25;"%I %W%I%N"
\n1490 GOTO 1450
\n1510 FOR A=1 TO 4
\n1520 GOSUB 1290
\n1530 FOR B=1 TO 4
\n1540 NEXT B
\n1550 PRINT AT 3*(8-F),Z;" ";TAB Z;" ";TAB Z;" "
\n1560 NEXT A
\n1570 RETURN
\n1580 CLEAR
\n1590 SAVE "1025%9"
\n1600 RUN