15 PRINT "THIS IS THE GAME OF MASTERMIND - WOULD YOU LIKE THE RULES(Y/N)"; : INPUT R5$ : IF R5$="Y" THEN GOSUB 1000 20 RANDOMIZE 30 DIM X(4) 40 REM RESTART FROM HERE 45 GOSUB 600 50 REM LETS GO GET 4 RANDOM NUMBERS 60 FOR I=1 TO 4 70 GOSUB 550 80 N(I)=A 90 NEXT I 100 PRINT " GUESS"," RESULT" : REM START GAME PROPER NOW 110 PRINT 120 FOR J=11 TO 20 : REM 11 TO 19 = 10 GUESSES 130 REM 140 PRINT " "; 160 PRINT "GUESS NUMBER ";J-10; 180 INPUT X$ : REM INPUT A 4 FIGURE NO. 190 REM NOW MAKE SURE IT IS 4 FIGURES 200 L=LEN(X$) 210 IF L<4 THEN 130 220 IF L>4 THEN 130 230 FOR I=1 TO 4 240 REM NOW MAKE SURE WE HAVE ONLY NUMERALS AND STORE IN ARRAY X() 250 X$(I)=MID$(X$,I,1) 260 IF X$(I)<"0" THEN 130 270 IF X$(I)>"9" THEN 130 280 X(I)=VAL(X$(I)) 290 NEXT I 300 REM NOW WE GO INTO CHECK GUESS MODE 320 C=0 330 FOR I=1 TO 4 : REM CLEAR MARKERS LOOP 340 N1(I)=0 : X1(I)=0 350 NEXT I 360 FOR I=1 TO 4 : REM CHECK FOR *'s LOOP 370 IF X(I)=N(I) THEN X1(I)=1 : N1(I)=1 : PRINT "*"; : C=C+1 380 IF C=4 THEN T=T+1 : G1=G1+(J-10) : G=G1/T : GOTO 480 390 NEXT I 400 FOR I=1 TO 4 : REM CHECK FOR ?'s LOOP 410 FOR K=1 TO 4 420 IF X1(I)=1 THEN 450 430 IF N1(K)=1 THEN 450 440 IF X(I)=N(K) THEN X1(I)=1 : N1(K)=1 : PRINT "?"; : GOTO 460 450 NEXT K 460 NEXT I 470 NEXT J 480 PRINT : PRINT : PRINT N(1);N(2);N(3);N(4);" WAS THE CORRECT NUMBER" 490 PRINT ," *** YOU WERE "; : IF C=4 THEN PRINT "RIGHT ***" : Y=Y+1 500 IF C<>4 THEN PRINT "WRONG ***" : M=M+1 505 GOSUB 600 510 REM AGAIN? 520 PRINT "AGAIN(Y/N)"; : INPUT Q1$ 530 IF Q1$="Y" THEN 40 540 GOTO 580 550 REM FIND A RANDOM NO. SUBROUTINE 560 A=INT(RND(1)*10) 570 RETURN 580 STOP 600 REM SUB TO PRINT SCORES 610 PRINT 620 PRINT " ** SCORES **" 625 PRINT 630 PRINT "MINE","YOURS","GUESSING AVERAGE" 635 PRINT " " 640 PRINT M,Y," ";G 695 RETURN 1000 REM SUB TO PRINT THE RULES 1005 PRINT 1010 PRINT:PRINT "I WILL THINK OF A 4 FIGURE NOUMBER ALL YOU HAVE TO DO IS GUESS IT" 1015 PRINT 1020 PRINT "I WILL LET YOU HAVE TEN GUESSES (IF YOU NEED THAT MANY)" 1025 PRINT 1030 PRINT "EACH TIME YOU MAKE A GUESS I WILL:-" 1040 PRINT "1) INDICATE HOW MANY ARE RIGHT AND IN THE RIGHT POSITION WITH A "; 1050 PRINT CHR$(34);"*";CHR$(34);" IN THE RESULTS COLUMN" 1060 PRINT "2) INDICATE HOW MANY ARE RIGHT BUT IN THE WRONG POSITION WITH A "; 1070 PRINT CHR$(34);"?";CHR$(34);" IN THE RESULTS COLUMN" 1080 PRINT : PRINT "I WILL ALSO KEEP A SCORE AND DISPLAY YOUR BATTING AVERAGE" 1085 PRINT 1090 PRINT "TYPE RETURN WHEN READY TO CONTINUE"; : INPUT R5$ 1095 RETURN