home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / lambda / soundpot / p / sbasics.lbr / MSTRMIND.BZS / MSTRMIND.BAS
Encoding:
BASIC Source File  |  1993-10-25  |  3.0 KB  |  117 lines

  1. 10    text 0,&
  2. ********************************************************************************                               MASTERMIND GAME (R)
  3. ********************************************************************************
  4.     THIS IS THE GAME OF MASTERMIND.  THE OBJECT OF THE GAME IS TO 
  5.     GUESS WHAT FOUR COLORS THE COMPUTER HAS HIDDEN IN IT'S MEMORY.
  6.     IF YOU GUESS A COLOR PEG IN THE RIGHT POSITION, THEN YOU WILL
  7.     GET A BLACK PEG.  IF YOU GUESS THE RIGHT COLOR PEG IN THE WRONG
  8.     POSITION, THEN YOU WILL GET A WHITE PEG.  IF YOU GET FOUR WHITE
  9.     PEGS, THAT MEANS YOU HAVE GUESSED FOUR CORRECT COLORS, BUT NOT 
  10.     IN THE RIGHT POSITIONS.  IF YOU GET FOUR BLACK PEGS, YOU WIN THE
  11.     GAME.  AFTER EACH PROMPT FOR MOVE NUMBER, ENTER YOUR GUESS.  FOR
  12.     EXAMPLE: "MOVER NUMBER 1 ?" ENTER "GGGG".  ENTRIES MUST BE IN 
  13.     CAPITAL LETTERS.
  14.  
  15.     IF YOU FORGET WHAT YOU HAVE PLAYED ON PREVIOUS GUESSES, TYPE "BOARD"
  16.  
  17.     IF YOU WANT TO QUIT IN THE MIDDLE OF A GAME, TYPE "QUIT"
  18.  
  19.     GOOD LUCK!!
  20. &
  21. 20    VAR B$,P$,G$,A$=STRING:10
  22. 30    VAR Y,Q,Z,C,N,X,X1,P,B,W,K,G,J,R,I,V=INTEGER
  23. 35    DIM COM INTEGER C(4) Y(10) Z(10) R(4) G(4)
  24. 40    DIM COM STRING B$(10)
  25. 100    PRINT "COLOR CODES:"
  26. 110    PRINT "               R=RED      O=ORANGE   Y=YELLOW"
  27. 120    PRINT "               G=GREEN      B=BLUE        P=PURPLE"
  28. 130    PRINT
  29. 180    C(0)=4
  30. 190    FOR N=1 TO 4
  31. 200    C(N)=INT(6*RND(1))
  32. 210    NEXT N
  33. 220    FOR N=1 TO 4
  34. 230    X=C(N)
  35. 231    IF X <> 1 THEN 234
  36. 232    X=89
  37. 233    GOTO 250
  38. 234    IF X <> 2 THEN 237
  39. 235    X=82
  40. 236    GOTO 250
  41. 237    IF X <> 3 THEN 240
  42. 238    X=80
  43. 239    GOTO 250
  44. 240    IF X <> 4 THEN 243
  45. 241    X=79
  46. 242    GOTO 250
  47. 243    IF X <> 5 THEN 246
  48. 244    X=71
  49. 245    GOTO 250
  50. 246    X=66
  51. 250    C(N)=X
  52. 260    NEXT N
  53. 270    P$=""
  54. 273     FOR X1=1 TO 4
  55. 275    P$=P$+CHR$(C(X1))
  56. 277    NEXT X1
  57. 280    P=1
  58. 290    PRINT
  59. 300    PRINT "MOVE NUMBER";P;
  60. 310    INPUT G$
  61. 320    IF G$= "BOARD" THEN 910
  62. 330    IF G$= "QUIT" THEN 440
  63. 340    B$(P)=G$
  64. 350    GOSUB 520
  65. 360     IF B=4 THEN 1010
  66. 370    GOSUB 600
  67. 380    PRINT B; "BLACK PEGS"
  68. 390    Y(P)=B
  69. 400    PRINT W; "WHITE PEGS"
  70. 410    Z(P)=W
  71. 415    P=P+1
  72. 420    IF P <> 10 THEN 290 ELSE 430
  73. 430    PRINT "SORRY. . . YOU LOSE"
  74. 440    PRINT "THE CORRECT CODE WAS:";P$
  75. 450    PRINT "WANT TO PLAY AGAIN?  ANSWER Y OR N";
  76. 460    INPUT A$
  77. 480    IF A$="Y" THEN 190
  78. 490    PRINT
  79. 500    END
  80. 510    REM ***********COMPUTE BLACK PEGS*************************
  81. 520    FOR X1=1 TO 4
  82. 523    G(X1)=ASC(MID$(G$,X1,1))
  83. 525    NEXT X1
  84. 530    B=0
  85. 540    FOR K=1 TO 4
  86. 550    IF G(K) <> C(K) THEN 570
  87. 560    B=B+1
  88. 570    NEXT K
  89. 580    RETURN
  90. 590    REM ***********COMPUTE WHITE PEGS*************************
  91. 600    FOR X1=1 TO 4
  92. 603    R(X1)=ASC(MID$(P$,X1,1))
  93. 605    NEXT X1
  94. 610    W=0
  95. 620    FOR I=1 TO 4
  96. 630    J=1
  97. 640    IF G(I) <> R(J) THEN 675
  98. 650    W=W+1
  99. 660    R(J)=0
  100. 670    GOTO 690
  101. 675    J=J+1
  102. 680    IF J < 5 THEN 640 ELSE 690
  103. 690    NEXT I
  104. 700    W=W-B
  105. 710    RETURN
  106. 900    REM *************PRINT BOARD SUMMARY***********************
  107. 910    V=P-1
  108. 920    PRINT "GUESS","BLACKS","WHITES"
  109. 930    PRINT "-----","------","------"
  110. 960    FOR I=1 TO V
  111. 970    PRINT B$(I),Y(I),Z(I)
  112. 990    NEXT I
  113. 1000    GOTO 290
  114. 1010    PRINT "YOU WIN!!"
  115. 1020    GOTO 450
  116. 9999     END
  117.