Compucolor.org – Virtual Media

Listing of file='12P7.BAS;01' on disk='vmedia/color_graphics_1_suits-sector.ccvf'

5 REM  PROGRAM 12.7
6 REM  CHESS PIECES USING CHARACTER PLOT
9
10 DIM P(6,20):REM  20 DATA FOR DRAWING EACH OF 6 PIECES
98
99 REM  DRAW THE BOARD
100 GOSUB 1000
108
109 REM  GET DATA FOR THE 6 PIECES
110 GOSUB 1500
118
119 REM  GET PLAYER'S CHOICE OF COLORS
120 GOSUB 1300
128
129 REM  DRAW THE PIECES
130 GOSUB 1600
138
139
140 PLOT 27,11:REM  FOR CONVENIENCE, RETURN TO SCROLL MODE
150 END
151
180 PLOT 6,2,8
996
997 REM  **********  SUBROUTINES  **********
998
999 REM  ----- DRAW THE BOARD
1000 PLOT 6,6,12,15,3,64,0:REM  SET UP
1008
1009 REM  DRAW THE WHOLE BOARD IN CYAN
1010 PLOT 2,250,30,0,125,247
1019
1020 FOR Y= 0TO 63:PLOT 34:NEXT
1029
1030 PLOT 2,255
1038
1039 REM  NOW ADD THE BLUE SQUARES
1040 PLOT 6,4
1050 S= 0
1060 PLOT 2
1069
1070 FOR Y= 0TO 112STEP 16
1079
1080   FOR X= 30TO 114STEP 24
1090     PLOT 250,X+ 12* S,Y,X+ 12* S+ 11,247
1100     FOR J= 1TO 7:PLOT 34:NEXT
1110     PLOT 2
1120   NEXT
1129
1130   S= 1+ (S= 1)
1140 NEXT
1149
1150 PLOT 255
1158
1159 REM  ADD REFERENCE LETTERS
1160 C= 52:REM  START WITH BLUE ON CYAN, BUT THIS WILL
1161       REM  TOGGLE IMMEDIATELY TO CYAN ON BLUE
1169
1170 FOR Y= 0TO 31STEP 31
1180   L= 64:REM  ASCII VALUES, BEGINNING WITH 1 LESS THAN "A"
1190   C= 52+ 14* (C= 52):REM  TOGGLE COLORS
1199
1200   FOR X= 15TO 57STEP 6
1210     C= 52+ 14* (C= 52):REM  TOGGLE COLORS
1220     PLOT 6,C
1230     L= L+ 1:REM  NEXT LETTER
1240     PLOT 3,X,Y,L
1250   NEXT
1259
1260 NEXT
1269
1270 RETURN
1297
1298 REM  ----- GET PLAYER'S CHOICE OF COLORS AND
1299 REM        ADD REFERENCE NUMBERS.
1300 PLOT 6,3,8:REM  COLOR = YELLOW; HOME CURSOR
1310 PRINT "DO YOU WISH TO"
1320 INPUT "PLAY WHITE? ";A$
1330 A$= LEFT$ (A$,1)
1340 IF A$= "Y"THEN N1= 56:N2= 49:S= - 1:GOTO 1370
1350 IF A$= "N"THEN N1= 49:N2= 56:S= 1:GOTO 1370
1360 PLOT 28:PRINT SPC( 15)"":PLOT 28:GOTO 1320
1369
1370 PLOT 6,7:REM  WHITE ON BLACK
1380 PLOT 27,10:REM  VERTICAL MODE
1389
1390 FOR X= 14TO 63STEP 49
1400   PLOT 3,X,1
1409
1410   FOR N= N1TO N2STEP S:REM  ASCII VALUES OF NUMBERS 1-8
1420     PLOT N,32,32,32
1430   NEXT
1439
1440 NEXT
1449
1450 PLOT 27,24,8:REM  PAGE MODE; HOME CURSOR
1458
1459 REM  ERASE INPUT
1460 PRINT SPC( 14)"":PRINT SPC( 14)""
1469
1470 W= (A$= "Y"):REM  W WILL NOW BE A FLAG = 0 IF PLAYER
1471              REM  IS PLAYING BLACK AND = -1 IF PLAYER
1472              REM  IS PLAYING WHITE
1473
1480 RETURN
1498
1499 REM  ----- GET DATA FOR THE 6 KINDS OF PIECES
1500 FOR P= 1TO 6
1509
1510   FOR N= 1TO 20:READ P(P,N):NEXT
1519
1520 NEXT
1529
1530 RETURN
1536
1537 REM  ----- THE DATA
1538
1539 REM  PAWN
1540 DATA   0,  0,  0,  0,  0
1542 DATA   0,192,206,  0,  0
1544 DATA   0, 50, 63,  2,  0
1546 DATA  64,100,103, 68,  0
1548
1549 REM  KNIGHT
1550 DATA   0,128,204,206,  8
1552 DATA 236,239,255,255, 15
1554 DATA  16,200,254, 63,  1
1556 DATA 102,119,119,103,  6
1558
1559 REM  BISHOP
1560 DATA   0,200,134, 12,  0
1562 DATA   0,169,191,  9,  0
1564 DATA   0,240,255,  0,  0
1566 DATA 102,119,119,103,  6
1568
1569 REM  ROOK
1570 DATA 136,128,136,128,  8
1572 DATA 247,254,255,254,  7
1574 DATA   0,255,255, 15,  0
1576 DATA 118,119,119,119,  6
1578
1579 REM  QUEEN
1580 DATA 132,140,140,140,  4
1582 DATA   0,217,223,  9,  0
1584 DATA   0,240,255,  0,  0
1586 DATA 102,119,119,103,  6
1588
1589 REM  KING
1590 DATA   0, 68, 78,  4,  0
1592 DATA 128,238,239,142,  0
1594 DATA   0,240,255,  0,  0
1596 DATA 102,119,119,103,  6
1598
1599 REM  ----- DRAW BEGINNING POSITION
1600 BG= 22:FG= 17+ W:REM  SET COLORS FOR ROOK AT TOP LEFT
1610 PLOT 3,16,0:REM  POSITION CURSOR AT TOP LEFT OF
1611             REM  BOARD AND ONE SPACE IN FROM EDGE
1612
1620 P= 4:GOSUB 2000:REM  DRAW A ROOK
1630 P= 2:GOSUB 2000:REM  KNIGHT
1640 P= 3:GOSUB 2000:REM  BISHOP
1650 P= 6+ W:GOSUB 2000:REM  QUEEN OR KING
1660 P= 5- W:GOSUB 2000:REM  KING OR QUEEN
1668
1669 REM  NOW THE RIGHT BISHOP, KNIGHT & ROOK
1670 P= 3:GOSUB 2000:P= 2:GOSUB 2000:P= 4:GOSUB 2000
1678
1679 REM  NOW FOR A ROW OF PAWNS AT THE TOP
1680 BG= 20:PLOT 3,16,4
1690 P= 1:FOR K= 1TO 8:GOSUB 2000:NEXT
1698
1699 REM  NOW FOR THE PIECES AT THE BOTTOM
1700 BG= 22:FG= 16- W:REM  SET COLORS FOR BOTTOM ROW OF PAWNS
1710 PLOT 3,16,24:REM  POSITION CURSOR
1718
1719 REM  DRAW BOTTOM ROW OF PAWNS
1720 P= 1:FOR K= 1TO 8:GOSUB 2000:NEXT
1729
1730 BG= 20:PLOT 3,16,28
1740 P= 4:GOSUB 2000:REM  ROOK
1750 P= 2:GOSUB 2000:REM  KNIGHT
1760 P= 3:GOSUB 2000:REM  BISHOP
1770 P= 6+ W:GOSUB 2000:REM  QUEEN OR KING
1780 P= 5- W:GOSUB 2000:REM  KING OR QUEEN
1788
1789 REM  NOW THE RIGHT 3 PIECES
1790 P= 3:GOSUB 2000:P= 2:GOSUB 2000:P= 4:GOSUB 2000
1799
1800 PLOT 6,2,8
1810 RETURN
1995
1996 REM  ----- DRAW A PIECE
1997
1998 REM  BG AND FG ASSUMED ASSIGNED.
1999 REM  P=PIECE #(1-6). CURSOR IS ASSUMED POSITIONED
2000 PLOT 30,BG,29,FG:REM  SET COLORS
2009
2010 FOR Y= 0TO 3
2020   PLOT 2,254:REM  CHARACTER PLOT
2029
2030   FOR X= 1TO 5
2040     PLOT P(P,5* Y+ X):IF P(P,5* Y+ X)< 255THEN 2080
2049
2050     PLOT 30,FG,32:REM  PRINT A SPACE IN THE FG COLOR
2060     PLOT BG,29:REM  RETURN ORIGINAL BG COLOR; FLAG OFF
2070     PLOT 2,254:REM  RETURN TO CHARACTER PLOT
2079
2080   NEXT :PLOT 255
2089
2090   PLOT 26,26,26,26,26,10:REM  CURSOR BACK & DOWN
2100 NEXT
2108
2109 REM  POSITION CURSOR FOR NEXT PIECE
2110 FOR J= 1TO 4:PLOT 25,28:NEXT :PLOT 25,25
2120 BG= 22+ 2* (BG= 22):REM  TOGGLE BG COLOR... CYAN--BLUE
2129
2130 RETURN