100 REM --- MASTERMIND BY ENSIGN SOFTWARE --- 110 GOSUB 800:GOSUB 610 120 RANDOMIZE VAL(RIGHT$(TIME$,2)) 130 T$="ABCDEFGHIJ" 140 G=0:E=6:GOSUB 510 150 SCREEN 0,0,0,0:CLS:LOCATE 10:PRINT "NUMBER OF POSITIONS " 160 LOCATE 10,22:INPUT M:IF M<1 THEN 500 170 IF M>10 THEN E=7:GOSUB 510:GOTO 150 180 LOCATE 12:PRINT "NUMBER OF LETTERS " 190 LOCATE 12,22:INPUT C:IF C<1 THEN E=5:GOSUB 510:GOTO 140 200 IF C>10 THEN E=4:GOSUB 510:GOTO 180 210 CLS:E=1:GOSUB 510 220 S$=SPACE$(M):FOR I=1 TO M:X=INT(RND*C+1):MID$(S$,I,1)=MID$(T$,X,1):NEXT I 230 FOR I=1 TO 20 240 LOCATE 1,1:PRINT "POSSIBLE LETTERS NUMBER THAT ARE" 250 PRINT TAB(9-C/2);LEFT$(T$,C):LOCATE 2,25:PRINT "EXACT CLOSE" 260 LOCATE I+3,1:PRINT USING "GUESS ## ";I; 270 PRINT STRING$(M,254);SPACE$(28-M) 280 LOCATE I+3,10 290 INPUT A$ 300 IF A$="END" THEN CHAIN "MENU" 310 IF A$="" AND G=0 THEN E=8:GOSUB 510:G=1:GOTO 260 320 IF A$="" AND G=1 THEN PRINT:GOTO 460 330 G=0:E=1:GOSUB 510 340 IF LEN(A$)<>M THEN E=2:GOSUB 510:GOTO 260 350 F=0:V$=S$:FOR J=1 TO M:IF INSTR(LEFT$(T$,C),MID$(A$,J,1))=0 THEN E=3:GOSUB 510 360 IF MID$(A$,J,1)=MID$(V$,J,1) THEN F=F+1:MID$(A$,J,1)="-":MID$(V$,J,1)="+" 370 NEXT J 380 IF F=M THEN LOCATE I+3,25:COLOR 31:PRINT "CONGRATULATIONS":COLOR 7:LOCATE I+5:PRINT "YOU SOLVED THE PUZZLE IN";I;"GUESSES.":LOCATE I+3,12:GOTO 470 390 S=0:FOR J=1 TO M:K=INSTR(V$,MID$(A$,J,1)) 400 IF K THEN S=S+1:MID$(V$,K,1)="+" 410 NEXT J 420 LOCATE I+3,26:PRINT USING "## ##";F,S 430 NEXT I 440 PRINT:PRINT "Twenty tries have gone by already and":PRINT "you haven't guessed the secret set" 450 PRINT"of letters that I'm thinking of." 460 PRINT"The answer "; 470 COLOR 15:PRINT S$:COLOR 7 480 E=9:GOSUB 510 490 A$=INKEY$:IF A$="" THEN 490 ELSE IF A$="y" OR A$="Y" THEN 140 500 CHAIN "MENU" 510 LOCATE 25,1:ON E GOTO 520,530,540,550,560,570,580,590,600 520 PRINT "PLEASE ENTER YOUR GUESS ON THE DOTS. ";:LOCATE 1,1:RETURN 530 PRINT "LENGTH OF THE STRING IS LIMITED TO";M;:LOCATE 1,1:RETURN 540 PRINT "YOU'VE USED A LETTER NOT IN THE LIST. ";:LOCATE 1,1:RETURN 550 PRINT "I CANT'T HANDLE MORE THAN 10 LETTERS. ";:LOCATE 1,1:RETURN 560 PRINT "IF YOU WANT TO EXIT, PRESS RETURN AGAIN";:LOCATE 1,1:RETURN 570 PRINT "PRESS RETURN TO EXIT BACK TO THE MENU";:LOCATE 1,1:RETURN 580 PRINT "THE GAME IS TOO HARD WITH MORE THAN 10 ";:LOCATE 1,1:RETURN 590 PRINT "PRESS RETURN AGAIN IF YOU GIVE UP. ";:LOCATE 1,1:RETURN 600 PRINT "DO YOU WANT TO PLAY AGAIN Y/N ? ";:LOCATE 1,1:RETURN 610 WIDTH 40:SCREEN 0,0,0,1:CLS:COLOR 15:LOCATE 1,15,0:PRINT "MASTERMIND":COLOR 7:PRINT 620 PRINT "I will create a random combination of":PRINT "letters which you are to figure out" 630 PRINT "within 20 guesses using the given clues." 640 PRINT "You select the number of character":PRINT "positions in the combination. Having " 650 PRINT "many positions makes it hard. A length" 660 PRINT "of 4 characters is recommended for the" 670 PRINT "beginner. Advanced players may like":PRINT "the extreme challenge of 10 positions." 680 PRINT 690 PRINT "Then you select how many letters I can":PRINT "choose from to create the puzzle." 700 PRINT "If you enter 4, I will use the first 4" 710 PRINT "letters of the alphabet, namely ABCD.":PRINT:PRINT "Having many letters to choose from":PRINT "makes the puzzle very difficult. We":PRINT "recommend 4 to 10 letters." 720 SCREEN 0,0,0,0:GOSUB 780:SCREEN 0,0,1,0:CLS:LOCATE 5,1 730 PRINT "You enter each of your guesses by":PRINT "typing a string of uppercase letters." 740 PRINT "Then press the RETURN key ( ";CHR$(17);"ฤฤู )." 750 PRINT:PRINT "I will report the number of letters":PRINT "that are in their correct positions," 760 PRINT "and the number of letters in your guess":PRINT "that are used in the puzzle, but which" 770 PRINT "are not in their correct positions.":SCREEN 0,0,1,1 780 LOCATE 25,1:PRINT " Press any key to continue. ";:LOCATE 1,1 790 A$=INKEY$:IF A$="" THEN 790 ELSE CLS:RETURN 800 KEY OFF:WIDTH 80:SCREEN 0,0,0,0:CLS:SCREEN 0,0,1,0:CLS:LOCATE 6,1,0 810 PRINT " ษอหออออออออออออออออออออออออออออออออออออออออออออหอป" 820 PRINT " ฬอฮออออออออออออออออออออออออออออออออออออออออออออฮอน" 830 PRINT " บ บ บ บ" 840 PRINT " บ บ ";:COLOR 15:PRINT " MASTERMIND ";:COLOR 7:PRINT " บ บ" 850 PRINT " บ บ บ บ" 860 PRINT " บ บ ";:COLOR 15:PRINT " COPYRIGHT (C) 1982 BY ENSIGN SOFTWARE ";:COLOR 7:PRINT " บ บ" 870 PRINT " บ บ บ บ" 880 PRINT " บ บ 2312 N. COLE RD, SUITE E บ บ" 890 PRINT " บ บ BOISE, ID 83704 U.S.A. บ บ" 900 PRINT " บ บ DAY (208) 378-8086 EVE (208) 377-1938 บ บ" 910 PRINT " บ บ บ บ" 920 PRINT " ฬอฮออออออออออออออออออออออออออออออออออออออออออออฮอน" 930 PRINT " ศอสออออออออออออออออออออออออออออออออออออออออออออสอผ" 935 DEF SEG=0:POKE &H417,PEEK(&H417) OR &H60 940 SCREEN 0,0,0,1:FOR I%=1 TO 10000:NEXT:RETURN