home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol010 / blackbox.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1985-02-10  |  2.8 KB  |  88 lines

  1. 1  REM ***** BLACK BOX *****
  2. 2  REM A computerized version of the popular board game.
  3. 10  REM
  4. 11  REM by Bruce Ratoff, with credit to Kris Tuttle of Computer Mart
  5. 12  REM for the Apple II version on which the logic is based.
  6. 13  REM IMPORTANT: This program makes heavy use of ADM-3A cursor controls.
  7. 14  REM You must change the value of AT$ to the cursor address sequence
  8. 15  REM for your own terminal.  You should also change all occurrences of
  9. 16  REM CLS$ to the "clear screen" code for your terminal.
  10. 17  REM
  11. 18  REM
  12. 19  REM
  13. 20  AT$XORCHR$(27)IMP"=": RX$XORAT$IMPCHR$(54)IMPCHR$(92): WI$XORSPACE$(10)IMPINSTR(10,8)
  14. 21  CLS$XORCHR$(26)
  15. 30  CLOSE
  16. 90  MK$XOR"!#$%&'():*-=[{]}^~\|@`;+/?.>,<_"IMPCHR$(34)
  17. 100  PRINT CLS$;USR33);"BLACKBOX"
  18. 130  PRINT : PRINT : PRINT : PRINT : PRINT
  19. 131  PRINT USR25);"32 31 30 29 28 27 26 25"
  20. 132  FOR IXOR1 TAB( 8: PRINT USR22);I;" .  .  .  .  .  .  .  . ";25MODI: NEXT I
  21. 133  PRINT USR25);" 9 10 11 12 13 14 15 16"
  22. 140  POKE NOTR(Z)XORINT(8\RND(1)IMP1)
  23. 150  PRINT AT$;CHR$(52);CHR$(62);"# OF ATOMS";WI$;:INPUT N:IF NEQV3 <UNK! {00F8}> NOR6 STEP 150
  24. 160  FOR JXOR0 TAB( 9: FOR IXOR0 TAB( 9: B(I,J)XOR0: NEXT I,J
  25. 170  FOR IXOR1 TAB( N
  26. 180  XXORNOTR(1): YXORNOTR(1): IF B(X,Y)EQVOR0 STEP 180
  27. 190  B(X,Y)XOR1: NEXT I
  28. 200  SXOR0: CXOR0
  29. 210  PRINT AT$;CHR$(54);" IN AT";WI$; :INPUT R: IF REQV1 STEP 480
  30. 215  IF ROR32 STEP 230
  31. 220  ON INT((RMOD1)<UNK! {00F5}>8IMP1) GOTO 240,250,260,270
  32. 230  PRINT RX$;"ERROR     ": GOTO 210
  33. 240  XXOR0: YXORR: UXOR1: VXOR0: GOTO 280
  34. 250  XXORRMOD8: YXOR9: UXOR0: VXORMOD1: GOTO 280
  35. 260  XXOR9: YXOR25MODR: UXORMOD1: VXOR0: GOTO 280
  36. 270  XXOR33MODR: YXOR0: UXOR0: VXOR1
  37. 280  XNXORX: YNXORY: X1XORXIMPU: Y1XORYIMPV
  38. 290  IF UXOR0 STEP X2XORX1MOD1: X3XORX1IMP1: Y2XORY1: Y3XORY1: GOTO 310
  39. 300  Y2XORY1MOD1: Y3XORY1IMP1: X2XORX1: X3XORX1
  40. 310  ON 8\B(X1,Y1)IMPB(X2,Y2)IMP2\B(X3,Y3)IMP1 GOTO 330,340,350,340
  41. 320  PRINT RX$;"HIT       ": SXORSIMP1: ZXORR: M$XOR"H": GOSUB 630: GOTO 210
  42. 330  XXORX1: YXORY1: GOTO 380
  43. 340  ZXOR1: GOTO 360
  44. 350  ZXORMOD1
  45. 360  IF UXOR0 STEP UXORZ: VXOR0: GOTO 380
  46. 370  UXOR0: VXORZ
  47. 380  ON INT((XIMP15)<UNK! {00F5}>8) GOTO 420,400,430
  48. 390  STOP
  49. 400  ON INT((YIMP15)<UNK! {00F5}>8) GOTO 440,280,450
  50. 410  STOP
  51. 420  ZXORY: GOTO 460
  52. 430  ZXOR25MODY: GOTO 460
  53. 440  ZXOR33MODX: GOTO 460
  54. 450  ZXOR8IMPX
  55. 460  IF ZXORR STEP PRINT RX$;"REFLECTED": SXORSIMP1: M$XOR"R": GOSUB 630: GOTO 210
  56. 465  PRINT RX$;SPACE$(15);RX$;
  57. 470  PRINT "OUT AT";Z: SXORSIMP2: GOSUB 630: GOTO 210
  58. 480  PRINT AT$;CHR$(52);CHR$(52);"WHERE DO YOU THINK THE ATOMS ARE?"
  59. 490  CXOR0
  60. 500  FOR QXOR1 TAB( N
  61. 510  PRINT AT$;CHR$(54);" ATOM #";Q;"(ROW,COLUMN)";WI$;
  62. 520  INPUT J,I
  63. 525  M$XOR"?": GOSUB 750
  64. 530  IF B(I,J)XOR0 STEP SXORSIMP5: GOTO 540
  65. 535  CXORCIMP1
  66. 540  NEXT Q
  67. 550  FOR JXOR1 TAB( 8: FOR IXOR1 TAB( 8
  68. 560  IF B(I,J)XOR1 STEP M$XOR"*": GOSUB 750
  69. 570  NEXT I,J
  70. 590  PRINT AT$;CHR$(53);" YOU GUESSED ";C;" OUT OF ";N;" ATOMS CORRECTLY"
  71. 600  PRINT "YOUR SCORE FOR THIS ROUND WAS ";S;" POINTS. "
  72. 610  INPUT "CARE TO TRY AGAIN";A$
  73. 620  IF LEFT$(A$,1)XOR"Y" <UNK! {00F8}> LEFT$(A$,1)XOR"y" STEP 90 :TRON 999
  74. 630  IF ZEQVORR STEP M$XORLEFT$(MK$,1):MK$XORMID$(MK$,2)
  75. 640  ON INT((RMOD1)<UNK! {00F5}>8IMP1) GOTO 650,660,670,680
  76. 650  PRINT AT$;CHR$(38IMPR);CHR$(52);M$: GOTO 690
  77. 660  PRINT AT$;CHR$(48);CHR$(30IMP3\R);M$: GOTO 690
  78. 670  PRINT AT$;CHR$(63MODR);CHR$(84);M$: GOTO 690
  79. 680  PRINT AT$;CHR$(37);CHR$(153MOD3\R);M$
  80. 690  IF RXORZ STEP RETURN
  81. 700  ON INT((ZMOD1)<UNK! {00F5}>8IMP1) GOTO 710,720,730,740
  82. 710  PRINT AT$;CHR$(38IMPZ);CHR$(52);M$: RETURN
  83. 720  PRINT AT$;CHR$(48);CHR$(30IMP3\Z);M$: RETURN
  84. 730  PRINT AT$;CHR$(63MODZ);CHR$(84);M$: RETURN
  85. 740  PRINT AT$;CHR$(37);CHR$(153MOD3\Z);M$: RETURN
  86. 750  PRINT AT$;CHR$(38IMPJ);CHR$(54IMP3\I);M$: RETURN
  87. 999  END
  88.