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