! UPDATED VERSON OF THE GAME MASTER MIND USING GRAPHICS AND GETCHR.SBR ! GETCHR.SBR GETS ANY CONTROL OR KEYBOARD CHARACTER WITHOUT DISPLAYING ! THAT CHARACTER. IT MAY BE CHANGED TO USE ACCEPT IF DESIRED MAP1 BLACK'PEGS,B,1 MAP1 CHAR,B,1 MAP1 CHECK,F,6 MAP1 CMP'GUESS,S,4 MAP1 CODE,S,4 MAP1 COL,F,6 MAP1 COLOR,B,1 MAP1 COLORS,S,6, "RGOBYP" MAP1 GUESS,S,1 MAP1 GUESS'NO,B,1 MAP1 ROW,F,6 MAP1 SEQ,F,6 MAP1 WHITE'PEGS,B,1 MAP1 X,F,6 RANDOMIZE ON ERROR GOTO YOU'LOSE START: PRINT TAB(-1,29); CALL DISPLAY'SCREEN CODE = "" : X = 0 CREATE'CODE: X = X + 1 IF X = 5 GOTO START'GUESS COLOR = INT(RND(1) * 6 + 1) CHECK = INSTR(1,CODE,COLORS[COLOR,COLOR]) IF CHECK = 0 THEN CODE = CODE + COLORS[COLOR,COLOR] & ELSE X = X - 1 GOTO CREATE'CODE START'GUESS: GUESS'NO = 0 : ROW = 3 GUESS: GUESS'NO = GUESS'NO + 1 IF GUESS'NO = 11 GOTO YOU'LOSE PRINT TAB(16,58); GUESS'NO USING "##"; ROW = ROW + 2 : COL = 8 : CMP'GUESS = "" GET'GUESS: IF COL = 16 GOTO VERIFY'CORRECT IF COL = 8 THEN GUESS = CMP'GUESS[1,1] IF COL = 10 THEN GUESS = CMP'GUESS[2,2] IF COL = 12 THEN GUESS = CMP'GUESS[3,3] IF COL = 14 THEN GUESS = CMP'GUESS[4,4] IF GUESS = "" THEN GUESS = "?" PRINT TAB(ROW,COL); TAB(-1,34); PRINT TAB(ROW,COL+1); GUESS; XCALL INKEY,CHAR PRINT TAB(ROW,COL); TAB(-1,32); IF CHAR = 8 AND & COL = 8 GOTO GET'GUESS IF CHAR = 8 AND & COL > 8 THEN COL = COL - 2 :& GOTO GET'GUESS IF CHAR = 27 GOTO YOU'LOSE GUESS = CHR$(CHAR) CHECK = INSTR(1,COLORS,GUESS) IF CHECK = 0 THEN GOTO GET'GUESS PRINT TAB(ROW,COL+1); GUESS; IF COL = 8 THEN CMP'GUESS[1,1] = GUESS IF COL = 10 THEN CMP'GUESS[2,2] = GUESS IF COL = 12 THEN CMP'GUESS[3,3] = GUESS IF COL = 14 THEN CMP'GUESS[4,4] = GUESS COL = COL + 2 GOTO GET'GUESS VERIFY'CORRECT: PRINT TAB(18,48); TAB(-1,21); "IS THIS CORRECT?"; TAB(-1,22); XCALL INKEY,CHAR PRINT TAB(18,48); TAB(-1,09); IF CHAR = 89 OR & CHAR = 121 GOTO COMPARE'GUESS IF CHAR = 78 OR & CHAR = 110 THEN COL = 8 :& GOTO GET'GUESS PRINT CHR$(7); GOTO VERIFY'CORRECT COMPARE'GUESS: BLACK'PEGS = 0 FOR X = 1 TO 4 IF CMP'GUESS[X,X] = CODE[X,X] THEN BLACK'PEGS = BLACK'PEGS + 1 NEXT X IF BLACK'PEGS = 4 GOTO YOU'WIN PRINT TAB(ROW,20); BLACK'PEGS USING "#"; WHITE'PEGS = 0 FOR X = 1 TO 4 GUESS = CMP'GUESS[X,X] CHECK = INSTR(1,CODE,GUESS) IF CHECK = 0 GOTO COMPARE'NEXT IF CHECK = X GOTO COMPARE'NEXT WHITE'PEGS = WHITE'PEGS + 1 COMPARE'NEXT: NEXT X PRINT TAB(ROW,24); WHITE'PEGS USING "#"; GOTO GUESS YOU'LOSE: PRINT TAB(20,43); "TOO BAD, YOU LOSE!!!"; FOR X = 1 TO 900 IF X/300 = INT(X/300) THEN PRINT CHR$(7); NEXT X GOTO PLAY'AGAIN YOU'WIN: PRINT TAB(20,40); "SO, YOU THINK YOU'RE SO SMART!!"; PRINT TAB(21,40); " I DEMAND A REMATCH!!!"; FOR X = 1 TO 900 IF X/300 = INT(X/300) THEN PRINT CHR$(7); NEXT X PLAY'AGAIN: PRINT TAB(02,08); TAB(-1,34); TAB(02,09); CODE[1,1]; PRINT TAB(02,10); TAB(-1,34); TAB(02,11); CODE[2,2]; PRINT TAB(02,12); TAB(-1,34); TAB(02,13); CODE[3,3]; PRINT TAB(02,14); TAB(-1,34); TAB(02,15); CODE[4,4]; PRINT TAB(22,40); "WANT TO PLAY AGAIN (Y/N) "; TAB(-1,28); INPUT GUESS IF GUESS[1,1] = "Y" GOTO START PRINT TAB(-1,00); END DISPLAY'SCREEN: PRINT TAB(-1,00); TAB(-1,23); PRINT TAB(01,06); TAB(-1,38); TAB(01,18); TAB(-1,42); PRINT TAB(01,22); TAB(-1,42); TAB(01,26); TAB(-1,39); PRINT TAB(02,06); TAB(-1,47); TAB(02,18); TAB(-1,47); PRINT TAB(02,22); TAB(-1,47); TAB(02,26); TAB(-1,47); PRINT TAB(03,06); TAB(-1,44); TAB(03,18); TAB(-1,48); PRINT TAB(03,22); TAB(-1,48); TAB(03,26); TAB(-1,43); FOR ROW = 4 TO 22 STEP 2 PRINT TAB(ROW,06); TAB(-1,44); TAB(ROW,18); TAB(-1,48); PRINT TAB(ROW,22); TAB(-1,48); TAB(ROW,26); TAB(-1,43); PRINT TAB(ROW+1,06); TAB(-1,47); TAB(ROW+1,18); TAB(-1,47); PRINT TAB(ROW+1,22); TAB(-1,47); TAB(ROW+1,26); TAB(-1,47); NEXT ROW PRINT TAB(24,06); TAB(-1,40); TAB(24,18); TAB(-1,45); PRINT TAB(24,22); TAB(-1,45); TAB(24,26); TAB(-1,41); FOR COL = 7 TO 25 IF COL = 18 OR & COL = 22 THEN NEXT COL PRINT TAB(01,COL); TAB(-1,46); PRINT TAB(03,COL); TAB(-1,46); NEXT COL FOR ROW = 4 TO 22 STEP 2 FOR COL = 7 TO 25 IF COL = 18 OR & COL = 22 THEN NEXT COL PRINT TAB(ROW,COL); TAB(-1,46); NEXT COL NEXT ROW FOR COL = 7 TO 25 IF COL = 18 OR & COL = 22 THEN NEXT COL PRINT TAB(24,COL); TAB(-1,46); NEXT COL PRINT TAB(02,16); TAB(-1,33); FOR COL = 8 TO 14 STEP 2 PRINT TAB(02,COL); TAB(-1,32); NEXT COL PRINT TAB(02,21); TAB(-1,33); TAB(02,19); TAB(-1,32); PRINT TAB(02,25); TAB(-1,33); TAB(02,23); TAB(-1,32); FOR ROW = 5 TO 23 STEP 2 PRINT TAB(ROW,16); TAB(-1,33); FOR COL = 8 TO 14 STEP 2 PRINT TAB(ROW,COL); TAB(-1,32); NEXT COL PRINT TAB(ROW,21); TAB(-1,33); TAB(ROW,19); TAB(-1,32); PRINT TAB(ROW,25); TAB(-1,33); TAB(ROW,23); TAB(-1,32); NEXT ROW PRINT TAB(01,01); TAB(-1,24); PRINT TAB(02,09); "C"; TAB(02,11); "O"; PRINT TAB(02,13); "D"; TAB(02,15); "E"; PRINT TAB(02,20); "B"; TAB(02,24); "W"; PRINT TAB(01,41); "*** MASTERMIND - VER 2.7A ***"; PRINT TAB(03,31); "In this game the computer will select four colors"; PRINT TAB(04,31); "as a code. You as the game player must guess the"; PRINT TAB(05,31); "computers selection within ten attempts. After"; PRINT TAB(06,31); "each of your guesses the computer will respond"; PRINT TAB(07,31); "with clues. If you're chicken you can quit early"; PRINT TAB(08,31); "by typing 'QUIT'. GOOD LUCK!"; PRINT TAB(10,50); "COLOR CODES:"; PRINT TAB(11,38); "R = RED O = ORANGE Y = YELLOW"; PRINT TAB(12,38); "G = GREEN B = BLUE P = PURPLE"; PRINT TAB(13,42); "B = CORRECT COLOR & POSITION"; PRINT TAB(14,45); "W = CORRECT COLOR ONLY"; PRINT TAB(16,52); "MOVE #"; PRINT TAB(01,01); RETURN