100 CLS
110 PRINT"     THE GAME OF MASTERMIND"
115 PRINT
120 PRINT
125 GOSUB130:GOTO 170
130 PRINT"COLOUR CODES:"
140 PRINT"R = RED    O = ORANGE  Y=YELLOW"
150 PRINT"G = GREEN  B = BLUE    P=PURPLE"
160 PRINT
165 RETURN
170 DIM B$(10),Y(10),Z(10)
180 REM START
190 P$="":FOR N=1 TO 4
200 C(N)=RND(6)
210 NEXT N
220 FOR N=1 TO 4
230 X=C(N)
240 GOSUB 730
250 C(N)=X
260 P$=P$+CHR$(X)
270 NEXT N
280 FOR P=1 TO 10
290 PRINT
300 PRINT "MOVE NUMBER";P;
310 INPUT G$
320 IF G$="" THEN 910
330 IF LEFT$(G$,1)="Q" THEN 440
340 G$=LEFT$(G$+"****",4):B$(P)=G$
350 GOSUB 520
360 IF B=4 THEN 1010
370 GOSUB 600
375 IF B=1 THEN PRINT " 1 BLACK PEG":GOTO 390
380 PRINT B;"BLACK PEGS"
390 Y(P)=B
395 IF W=1 THEN PRINT " 1 WHITE PEG":GOTO 410
400 PRINT W;"WHITE PEGS"
410 Z(P)=W
420 NEXT P
430 PRINT"SORRY, YOU LOSE."
440 PRINT"CORRECT CODE WAS: ";P$
450 PRINT
460 PRINT"WANT TO PLAY AGAIN (Y/N)?"
470 A$=INKEY$:X=RND(6):IF A$="" THEN 470
480 IF A$="N" THEN 500
485 IF A$="Y" THEN 190
490 GOTO 470
500 END
510 REM COMPUTE BLACK PEGS
520 FOR I=1 TO 4:G(I)=ASC(MID$(G$,I,1)):NEXT I
530 B=0
540 FOR K=1 TO 4
550 IF G(K)<>C(K) THEN 570
560 B=B+1
570 NEXT K
580 RETURN
590 REM COMPUTE WHITE PEGS
600 FOR I=1 TO 4:R(I)=ASC(MID$(P$,I,1)):NEXT I
610 W=0
620 FOR I=1 TO 4
630 FOR J=1 TO 4
640 IF G(I)<>R(J) THEN 680
650 W=W+1
660 R(J)=0
670 GOTO 690
680 NEXT J
690 NEXT I
700 W=W-B
710 RETURN
720 REM TRANSLATE COLOUR CODES TO NUMBERS
730 IF X<>1 THEN 760
740 X=82
750 RETURN
760 IF X<>2 THEN 790
770 X=79
780 RETURN
790 IF X<>3 THEN 820
800 X=89
810 RETURN
820 IF X<>4 THEN 850
830 X=71
840 RETURN
850 IF X<>5 THEN 880
860 X=66
870 RETURN
880 X=80
890 RETURN
900 REM PRINT BOARD SUMMARY
910 V=P-1
920 CLS:GOSUB 130
925 IF P=1 THEN 1000
930 PRINT"GUESS   BLACKS   WHITES"
950 PRINT"-----   ------   ------"
960 FOR I=1 TO V
970 PRINT B$(I);"     ";Y(I);"      ";Z(I)
980 REM
990 NEXT I
1000 GOTO 290
1010 PRINT"YOU WIN!"
1020 GOTO 450
