home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / snug / MASTER.TXT < prev    next >
Text File  |  2006-10-19  |  3KB  |  80 lines

  1. 100 REM Mastermind
  2. 110 REM By Walid Maalouli
  3. 120 REM May 1999
  4. 130 DISPLAY AT(12)BEEP,"MASTERMIND":PAUSE:RANDOMIZE
  5. 140 DIM C$(5),H$(9),P(5),P1(5),T$(9,5)
  6. 150 FOR I=1 TO 4
  7. 160 C=INTRND(6):C$(I)=CHR$(96+C)
  8. 170 NEXT I
  9. 180 CALL CHAR(0,"000e111111110e"):CALL CHAR(1,"000e1f1f1f1f0e")
  10. 190 DISPLAY BEEP,"Do you need instructions? (y/n)"
  11. 200 K$=KEY$:IF K$=""THEN 200
  12. 210 IF K$="y"THEN GOSUB 680
  13. 220 DISPLAY BEEP,"Code is set. Good luck!":PAUSE
  14. 230 T=1:CUR=T
  15. 240 PRINT T;" _ _ _ _   ____";
  16. 250 DISPLAY AT(20)BEEP,"Enter code";:L=5
  17. 260 FOR I=1 TO 4
  18. 270 ACCEPT AT(L)BEEP SIZE(1)VALIDATE("abcdef"),T$(T,I)
  19. 280 IF T$(T,I)=""THEN 270
  20. 290 L=L+2
  21. 300 NEXT I
  22. 310 L=15
  23. 320 FOR I=1 TO 4
  24. 330 IF T$(T,I)=C$(I)THEN DISPLAY AT(L)SIZE(1),CHR$(1) ELSE P(I)=0:GOTO 350
  25. 340 L=L+1:P(I)=1:S$=S$&CHR$(1)
  26. 350 NEXT I
  27. 360 IF L-1=18 THEN 540
  28. 370 FOR I=1 TO 4
  29. 380 FOR J=1 TO 4
  30. 390 IF T$(T,I)=C$(J)AND P(I)=0 AND P(J)=0 AND P1(J)=0 THEN 400 ELSE 410
  31. 400 DISPLAY AT(L)SIZE(1),CHR$(0):L=L+1:P1(J)=1:S$=S$&CHR$(0):GOTO 420
  32. 410 NEXT J
  33. 420 NEXT I
  34. 430 H$(T)=S$:S$=""
  35. 440 FOR I=1 TO 4:P(I)=0:P1(I)=0:NEXT I
  36. 450 IF T+1>9 THEN 650
  37. 460 DISPLAY AT(20)BEEP," "
  38. 470 K$=KEY$:IF K$=""THEN 470
  39. 480 IF ASC(K$)=32 AND T=CUR THEN T=T+1:CUR=T:PRINT:GOTO 240
  40. 490 IF ASC(K$)=232 AND T>1 THEN T=T-1:PRINT: ELSE 530
  41. 500 PRINT T;" ";:FOR I=1 TO 4:PRINT T$(T,I);" ";:NEXT I
  42. 510 DISPLAY AT(15)SIZE(4),"____"
  43. 520 IF H$(T)=""THEN 470 ELSE DISPLAY AT(15)BEEP SIZE(LEN(H$(T))),H$(T):GOTO 470
  44. 530 IF ASC(K$)=233 AND T<CUR THEN T=T+1:PRINT:GOTO 500 ELSE 470
  45. 540 DISPLAY AT(20)BEEP,"Good job!":PAUSE
  46. 550 DISPLAY BEEP,"Play again? (y/n)"
  47. 560 K$=KEY$:IF K$=""THEN 560
  48. 570 IF K$="n"THEN STOP
  49. 580 FOR T=1 TO 8
  50. 590 H$(T)=""
  51. 600 FOR I=1 TO 4
  52. 610 T$(T,I)=""
  53. 620 NEXT I
  54. 630 NEXT T
  55. 640 GOTO 150
  56. 650 DISPLAY AT(20)BEEP,"You lose...":PAUSE:PRINT
  57. 660 PRINT "* ";:FOR I=1 TO 4:PRINT C$(I);" ";:NEXT I
  58. 670 PRINT "* Correct Code":PAUSE:GOTO 550
  59. 680 PRINT "This is a game of":PAUSE
  60. 690 PRINT "logical deduction. The":PAUSE
  61. 700 PRINT "computer will pick a code of":PAUSE
  62. 710 PRINT "4 letters out of 6 (abcdef)":PAUSE
  63. 720 PRINT "and you have 8 attempts at":PAUSE
  64. 730 PRINT "guessing that code...":PAUSE
  65. 740 PRINT "After each attempt, the ":PAUSE
  66. 750 PRINT "computer will give you hints:":PAUSE
  67. 760 PRINT "for each CORRECT letter in ":PAUSE
  68. 770 PRINT "in the CORRECT position, a ":PAUSE
  69. 780 PRINT CHR$(1);" will be displayed. For each":PAUSE
  70. 790 PRINT "CORRECT letter in the WRONG":PAUSE
  71. 800 PRINT "position, a ";CHR$(0);" will be":PAUSE
  72. 810 PRINT "displayed. Use these hints":PAUSE
  73. 820 PRINT "to deduce the correct code...":PAUSE
  74. 830 PRINT "Press the spacebar after":PAUSE
  75. 840 PRINT "each attempt to go on to the":PAUSE
  76. 850 PRINT "next one. You can also view":PAUSE
  77. 860 PRINT "previous attempts by using the":PAUSE
  78. 870 PRINT "arrow keys.":PAUSE
  79. 880 PRINT "Enjoy!":PAUSE
  80. 890 RETURN