Compucolor.org – Virtual Media

Listing of file='CONC2.BAS;01' on disk='vmedia/othello-sector.ccvf'

1 REM  CONCENTRATION - COMPUCOLOR II VERSION - MAY 16, 1978
2 REM  REWRITTEN BY GREGORY F. WHITTEN
3 REM  ORIGINAL VERSION BY ALAN MITCHELL OCT 1977
4 REM  LETTER VERSION
5 CLEAR 50
10 SQ= 15:DL= 1
15 DIM R(SQ),V(SQ),S(1),G(1)
20 DEF FN R(X)= INT (X* RND (1)+ 1)
100 GOSUB 10000:GOSUB 11000
200 GOSUB  1000
210 PL= FN R(2)- 1
300 PL= 1- PL
310 IF M> SQTHEN 900
320 GOSUB 3000
330 IF V(G(0))= V(G(1))THEN 400
340 S(PL)= S(PL)- 1:GOSUB 2400
350 PLOT 6,5,3,28,28:PRINT "NO MATCH":GOSUB 2900
360 GOSUB 2700:GOSUB 2800
390 GOTO 300
400 S(PL)= S(PL)+ 2:GOSUB 2400
410 PLOT 6,6,3,30,28:PRINT "MATCH":GOSUB 2900
420 M= M+ 2:GOSUB 2600:GOSUB 2800:GOTO 310
899 REM  END OF GAME
900 GOTO 200
999 REM  SETUP GAME
1000 M= 0:PLOT 14
1010 PLOT 6,6,3,0,28:INPUT "PLEASE SELECT A LETTER FROM C TO Z: ";A$
1015 IF ASC (A$)- 65< 2OR ASC (A$)- 65> 25THEN LOAD "MENU":RUN
1020 T= ASC (A$)- 65:IF T< 2OR T> 25THEN GOSUB 2950:GOTO 1010
1050 GOSUB 2000:GOSUB 2500
1099 RETURN
1999 REM  DRAW BOARD
2000 PLOT 6,0,12,14,6,32
2010 FOR I= 0TO 16STEP 2:PLOT 3,13,I:PRINT SPC( 38)"":NEXT
2020 FOR Z= 0TO SQ:GOSUB 2100:NEXT
2030 PLOT 6,2,3,26,18:PRINT "MATCH A TO "CHR$ (65+ T)
2040 FOR P= 0TO 1:Q= 44* P:PLOT 17+ P,3,Q,20:PRINT "PLAYER"P+ 1"  SCORE "S(P)
2050 FOR S= 1TO 2:PLOT 3,Q,20+ S+ S:PRINT "SELECTION"S":":NEXT :NEXT
2090 RETURN
2100 GOSUB 2300:PLOT 6,52:A$= STR$ (Z+ 1):A= LEN (A$)
2110 PRINT SPC( (7- A)/ 2);A$;SPC( (8- A)/ 2)"":RETURN
2200 GOSUB 2300:PLOT 6,11:PRINT "   "CHR$ (65+ V(Z))"   ":RETURN
2210 PRINT SPC( (7- A)/ 2);A$;SPC( (8- A)/ 2)"":RETURN
2300 PLOT 3,15+ 9* (3AND Z),2+ (12AND Z):RETURN
2399 REM  UPDATE SCORE
2400 FOR P= 0TO 1:PLOT 6,1+ P,3,16+ 44* P,20:PRINT S(P):NEXT :RETURN
2499 REM  RANDOMIZE GAME
2500 FOR I= 0TO SQ:R(I)= I:NEXT
2510 FOR I= SQTO 1STEP - 1:J= FN R(I+ 1)- 1:K= R(I):R(I)= R(J):R(J)= K:NEXT
2520 FOR I= 0TO INT (SQ/ 2):J= FN R(T+ 1)- 1:V(R(I))= J:V(R(SQ- I))= J:NEXT
2530 RETURN
2599 REM  MATCH MARK SQUARES USED
2600 FOR S= 0TO 1:V(G(S))= - 1:NEXT :RETURN
2699 REM  NO MATCH REDISPLAY
2700 FOR S= 0TO 1:Z= G(S):GOSUB 2100:NEXT :RETURN
2799 REM  WIPE OUT SELECTIONS
2800 FOR S= 0TO 1:GOSUB 2850:NEXT :RETURN
2850 PLOT 6,7,3,13+ 44* PL,22+ S+ S:PRINT SPC( 5)"":RETURN
2899 REM  DELAY SUB
2900 FOR D= 1TO DL* 500:NEXT
2950 PLOT 6,0,3,0,28:PRINT SPC( 63)"":RETURN
2999 REM  ENTER MOVES
3000 G(1)= - 1:FOR S= 0TO 1
3010 PLOT 6,7,3,13+ 44* PL,22+ S+ S:INPUT "";A$:Z= VAL (A$)- 1
3020 IF Z> = 0AND Z< = SQTHEN 3100
3030 PLOT 6,5,3,19,28:PRINT "ENTER A NUMBER FROM 1 TO"SQ+ 1
3040 GOSUB 2900:GOSUB 2850:GOTO 3010
3100 IF V(Z)> = 0THEN 3200
3110 PLOT 6,3,3,19,28:PRINT Z+ 1" HAS ALREADY BEEN MATCHED"
3120 GOTO 3040
3200 IF Z< > G(1- S)THEN 3300
3210 PLOT 6,5,3,24,28:PRINT "YOU JUST CHOSE"Z+ 1:GOTO 3040
3300 G(S)= Z:GOSUB 2200
3390 NEXT :RETURN
9999 REM  LOGO
10000 PLOT 6,6,12,14,3,20,0
10010 PRINT "C O N C E N T R A T I O N"
10020 PLOT 18,3,12,2
10030 PRINT "A GAME OF MEMORY AND SKILL FOR TWO PLAYERS"
10040 REM  READ CLOCK
10050 RETURN
10999 REM  INSTRUCTIONS
11000 PLOT 15,3,0,6
11010 PRINT "	TO PLAY CONCENTRATION, ONE PLAYER SELECTS A LETTER"
11020 PRINT "FROM C TO Z.  THE LOWER THE LETTER, THE EASIER THE GAME."
11040 PRINT "	I'LL GENERATE 8 PAIRS OF MATCHING NUMBERS AND PLACE"
11050 PRINT "THEM AT RANDOM ON A PLAYING BOARD WITH 16 NUMBERED POSITIONS."
11070 PRINT "	THE FIRST PLAYER (CHOSEN AT RANDOM) SELECTS TWO"
11080 PRINT "POSITIONS, ONE AT A TIME.  AS EACH POSITION IS SELECTED,"
11090 PRINT "I'LL REVEAL THE LETTER IN THAT POSITION. THE PLAYER THEN"
11100 PRINT "SELECTS A SECOND POSITION TRYING TO MATCH THE FIRST LETTER."
11120 PRINT "IF YOU ARE SUCCESSFUL, I'LL ADD 2 TO YOUR SCORE AND"
11130 PRINT "LET YOU SELECT ANOTHER PAIR."
11140 PRINT "	IF YOU FAIL TO MATCH, I'LL TELL YOU THAT YOU HAVE"
11150 PRINT "NO MATCH, LET YOU LOOK AT THE LETTERS IN BOTH POSITIONS"
11160 PRINT "FOR A SHORT TIME, AND WIPE THE LETTERS OFF THE SCREEN."
11170 PRINT "I'LL SUBTRACT 1 FROM YOUR SCORE AND LET YOUR OPPONENT"
11180 PRINT "HAVE A CHANCE TO SELECT.  (YOU CAN TELL WHICH PLAYER IS"
11190 PRINT "SELECTING BY WATCHING THE CURSOR -- THE TWO BLINKING"
11200 PRINT "WHITE HORIZONTAL LINES.)"
11210 PRINT "	WHEN THE BOARD HAS BEEN CORRECTLY MATCHED, I'LL ASK"
11220 PRINT "FOR A NEW LETTER TO BE CHOSEN, AND GENERATE A NEW GAME."
11999 RETURN