home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib42a.dsk / APRIL.1992 / MATCHWORD.bas < prev    next >
BASIC Source File  |  2023-02-26  |  14KB  |  214 lines

  1. 10  REM ************************
  2. 20  REM * MATCHWORD            *
  3. 30  REM * BY JOSEPH J. STROUT  *
  4. 40  REM * COPYRIGHT (C) 1992   *
  5. 50  REM * MINDCRAFT PUBL. CORP.*
  6. 60  REM * LINCOLN, MA 01773    *
  7. 70  REM ************************
  8. 80  GOTO 1970: REM  STARTUP
  9. 90  GOTO 300
  10. 100  REM  DRAW BOX #A
  11. 110 Y =  INT((A -1)/3):X = A -Y *3 -1:A$ =  MID$ ("  " + STR$(A),1 +2 *N,1 +(A >9))
  12. 120  VTAB Y *3 +1: HTAB X *13 +2: PRINT  LEFT$(UL$,12);: VTAB Y *3 +2: HTAB X *13 +1: PRINT L$ SPC( 12)L$;: VTAB Y *3 +3: HTAB X *13 +1
  13. 130  PRINT L$ SPC( 5 +(A <10))A$ SPC( 5)L$;: VTAB Y *3 +4: HTAB X *13 +1: PRINT L$ LEFT$(UL$,12)L$
  14. 140  RETURN 
  15. 150  REM REVEAL CARD #A  
  16. 160  INVERSE :BN(A) =  ABS(BD(A))
  17. 170 Y =  INT((A -1)/3):X = A -Y *3 -1:A$ = P$( ABS(BD(A)),1 +(BD(A) >0))
  18. 180  VTAB Y *3 +2: HTAB X *13 +1: PRINT  LEFT$(A$,13): POKE 768,150 +A *5: POKE 769,20: CALL 770
  19. 190  HTAB X *13 +1: PRINT  MID$ (A$,14,13): POKE 768,100 +A *5: POKE 769,20: CALL 770
  20. 200  HTAB X *13 +1: PRINT  MID$ (A$,27,13): POKE 768,50 +A *5: POKE 769,20: CALL 770
  21. 210  NORMAL : RETURN 
  22. 220  REM PRINT NAME AND SCORE FOR PLAYER #A
  23. 230  VTAB 20: PRINT : POKE 50,63 +192 *(A < >CN): HTAB A *20 -9 - LEN(N$(A))/2: PRINT N$(A): NORMAL 
  24. 240  HTAB A *20 -9 - LEN( STR$(SC(A)))/2: PRINT SC(A)" ": RETURN 
  25. 250  REM DRAW "MARQUEE" TITLE
  26. 260  POKE 33,15: POKE 32,12: VTAB 1: PRINT T$(TL):TL = TL +1 -3 *(TL = 3): RETURN 
  27. 270  HTAB 14: PRINT L$ LEFT$(UL$,11)L$: HTAB 15: PRINT  LEFT$(UL$,11): NORMAL : RETURN : REM  DIVIDER
  28. 280  POKE 32,20 *CN -19: POKE 33,17: POKE 34,22: POKE 35,23: HOME : RETURN : REM  HOME WINDOW FOR PLAYER CN
  29. 290  REM *** MAIN LOOP ***
  30. 300  GOSUB 460: REM GET NEW BOARD
  31. 310  FOR CN = 1 TO 2: ON CT(CN) +1 GOSUB 600,810: REM   DO 1             PLAYER'S TURN
  32. 320  IF   NOT DN  THEN  NEXT CN: GOTO 310
  33. 330  REM SCOREBOARD
  34. 340  TEXT : HOME : GOSUB 260: TEXT : VTAB 6: FOR J = 1 TO 2:MT(J) = MT(J) +(SC(J) >SC( FN NT(J))):TS(J) = TS(J) +SC(J): NEXT :NM = NM +1
  35. 350  FOR J = 1 TO 2: HTAB 10: PRINT  LEFT$(UL$,21):X = 10 - LEN(N$(J))/2: PRINT  TAB( 9)L$ LEFT$(UL$,X);: INVERSE : PRINT " "N$(J)" ";: NORMAL : PRINT  LEFT$(UL$, INT(X -.5))L$
  36. 360  HTAB 9: PRINT L$ TAB( 31)L$: HTAB 9: PRINT L$" SCORE THIS GAME:";: POKE 50,255 -192 *(SC(J) >SC( FN NT(J))): PRINT SC(J);: NORMAL : PRINT  TAB( 31)L$
  37. 370  HTAB 9: PRINT L$ TAB( 15)"TOTAL SCORE:";: POKE 50,255 -192 *(TS(J) >TS( FN NT(J))): PRINT TS(J);: NORMAL : PRINT  TAB( 31)L$
  38. 380  HTAB 9: PRINT L$ TAB( 13)"AVERAGE SCORE:" INT(TS(J)/NM) TAB( 31)L$: HTAB 9: PRINT L$ TAB( 17)"GAMES WON:"MT(J) TAB( 31)L$
  39. 390  HTAB 9: PRINT L$ LEFT$(UL$,21)L$: NEXT 
  40. 400  VTAB 23: PRINT  TAB( 10)"PRESS <O> FOR OPTIONS,": PRINT  TAB( 8)"OR <SPACE> TO PLAY AGAIN!";
  41. 410  VTAB 2: PRINT 
  42. 420  IF  PEEK(49152) <128  THEN  GOSUB 260: GOTO 440
  43. 430  GET A$: ON (A$ = "O"  OR A$ = "o") +2 *(A$ = " ") GOTO 970,300
  44. 440  GOTO 420
  45. 450  REM MAKE NEW BOARD
  46. 460  GOSUB 540: FOR J = 1 TO 18:BD(J) = 0: NEXT : FOR J = 1 TO 9
  47. 470 A =  INT( RND(1) *NP) +1: FOR K = 1 TO 18: IF A < > ABS(BD(K))  THEN  NEXT : GOTO 490
  48. 480  GOTO 470
  49. 490 C =  INT( RND(1) *18) +1: IF BD(C)  THEN 490
  50. 500 BD(C) = A:A =  -A: IF A <0  THEN 490
  51. 510  NEXT : FOR A = 1 TO 18: GOSUB 110: POKE 768,100 +A *5: POKE 769,30: CALL 770: NEXT 
  52. 520  RETURN 
  53. 530  REM BOARD SET-UP  
  54. 540  TEXT : HOME :DN = 0:SC(1) = 0:SC(2) = 0: VTAB 19: PRINT : PRINT BC$: FOR J = 1 TO 4
  55. 550  VTAB 19 +J: HTAB 40: PRINT  LEFT$(BC$,2);: IF J <4  THEN  PRINT  TAB( 20) LEFT$(BC$,2);
  56. 560  NEXT : VTAB 24: PRINT  LEFT$(BC$,38);: POKE 2039,163
  57. 570  FOR A = 1 TO 2: GOSUB 230: NEXT 
  58. 580  VTAB 1: RETURN 
  59. 590  REM  PLAYER CN'S TURN 
  60. 600  FOR A = 1 TO 2: GOSUB 230: NEXT 
  61. 610  FOR T = 1 TO 2: GOSUB 280
  62. 620  PRINT : PRINT "YOUR CHOICE? ";: WAIT 49152,128: IF  PEEK(49152) = 145  THEN  POKE 49168,0: GOTO 650
  63. 630  INPUT "";A$: IF BD( VAL(A$) *( VAL(A$) <19  AND  VAL(A$) >0))  THEN 680
  64. 640  IF  VAL(A$) >0  AND  VAL(A$) <19  THEN 620
  65. 650  PRINT : PRINT "QUIT (Y/N) ? ";
  66. 660  GET A$: IF A$ < >"Y"  AND A$ < >"N"  THEN 660
  67. 670  PRINT A$;: ON (A$ = "Y") +1 GOTO 620:DN = 1: RETURN 
  68. 680 C(T) =  VAL(A$):A = C(T): TEXT : GOSUB 160: REM REVEAL CHOICE
  69. 690  NEXT T: GOSUB 280
  70. 700  FOR J = 1 TO 500: NEXT 
  71. 710  IF BD(C(1)) =  -BD(C(2))  THEN 750
  72. 720  PRINT "NO MATCH.";: POKE 768,200: POKE 769,40: CALL 770: POKE 768,255: POKE 769,100: CALL 770
  73. 730  FOR J = 1 TO 1000: NEXT : TEXT :A = C(1): GOSUB 110:A = C(2): GOSUB 110
  74. 740  RETURN 
  75. 750  PRINT "RIGHT!";: POKE 768,155: POKE 769,40: CALL 770: POKE 769,40: CALL 770: POKE 768,65: POKE 769,60: CALL 770
  76. 760 SC(CN) = SC(CN) +10: IF P$( ABS(BD(C(1))),1) = P$(0,1)  THEN SC(CN) = SC(CN) +15: FOR J = 255 TO 50  STEP  -20: POKE 768,J: POKE 769,15: CALL 770: NEXT 
  77. 770  TEXT :A = CN: GOSUB 230:N = 0: FOR T = 1 TO 2:A = C(T): GOSUB 110:BD(C(T)) = 0:BN(C(T)) = 0: NEXT 
  78. 780 A = 0: FOR J = 1 TO 18:A = A +  NOT BD(J): NEXT :DN = (A = 18):N = 1
  79. 790 CN = CN -1: RETURN 
  80. 800  REM  COMPUTER CN'S TURN
  81. 810 D = SC(CN) -SC(CN +1 -2 *(CN = 2))
  82. 820  IF D <25  OR MT(CN) <MT( FN NT(CN))  THEN  GOSUB 880: IF A >0  THEN 920
  83. 830  GOSUB 840: GOTO 920
  84. 840 A =  INT(18 * RND(1) +1): IF   NOT BD(A)  THEN 840
  85. 850 B =  INT(18 * RND(1) +1): IF   NOT BD(B)  OR A = B  THEN 850
  86. 860  RETURN 
  87. 870  REM FIND KNOWN PAIR, A AND B
  88. 880  FOR J = 1 TO 17: IF   NOT BN(J)  THEN 910
  89. 890  FOR K = J +1 TO 18: IF BN(J) < >BN(K)  THEN  NEXT : GOTO 910
  90. 900 A = J:B = K:K = 19: NEXT :J = 19: NEXT : RETURN 
  91. 910  NEXT J:A = 0: RETURN 
  92. 920 C(1) = A:C(2) = B: FOR T = 0 TO 1: GOSUB 280
  93. 930  PRINT "MY CHOICE: ";:A$ =  STR$(C(T +1)): FOR J = 1 TO  LEN(A$): PRINT  MID$ (A$,J,1);:U =  PEEK(49200) + PEEK(49200): FOR K = 1 TO 300: NEXT K,J
  94. 940 A = C(T +1): TEXT : GOSUB 160: FOR J = 1 TO 500: NEXT J,T: GOSUB 280
  95. 950  GOTO 710
  96. 960  REM OPTIONS SCREEN
  97. 970  TEXT : HOME : GOSUB 260: TEXT :S = ( PEEK(770) = 173):C = 0
  98. 980 M$(0) = "PLAY MATCHWORD":M$(1) = "PLAYER ONE: " +N$(1):M$(2) = "PLAYER TWO: " +N$(2):M$(3) = "SOUND O" + MID$ ("FFN ",1 +2 *S,2):M$(4) = "LOAD NEW WORDS":M$(5) = "QUIT MATCHWORD"
  99. 990  VTAB 24: PRINT  TAB( 7)"USE ARROW KEYS AND <RETURN>";
  100. 1000  VTAB 7: PRINT : FOR J = 0 TO 5: HTAB 20 - LEN(M$(J))/2: POKE 50,255 -192 *(J = C): PRINT M$(J): NORMAL : IF J < >1  THEN  PRINT 
  101. 1010  NEXT 
  102. 1020  IF  PEEK(49152) <128  THEN  GOSUB 260: GOTO 1020
  103. 1030  TEXT : GET K$:K =  ASC(K$): IF K = 8  OR K = 11  THEN C = C -1 +6 *(C = 0): GOTO 1000
  104. 1040  IF K = 10  OR K = 21  THEN C = C +1 -6 *(C = 5): GOTO 1000
  105. 1050  IF K < >13  THEN  POKE 768,255: POKE 769,100: CALL 770: GOTO 1020
  106. 1060  IF   NOT C  THEN 300
  107. 1070  IF C = 3  THEN S =   NOT S: POKE 770,96 +77 *S: GOTO 980
  108. 1080  IF C >2  THEN 1130
  109. 1090  VTAB 19: PRINT "ENTER ";: INVERSE : PRINT "APPLE";: NORMAL : PRINT " FOR COMPUTER PLAYER:"
  110. 1100  PRINT : PRINT "NAME: ";: INVERSE : PRINT  SPC( 16): HTAB 7:A$ = N$(C): INPUT "";N$(C): NORMAL : IF N$(C) = ""  THEN N$(C) = A$
  111. 1110 CT(C) = (N$(C) = "APPLE"  OR N$(C) = "Apple"  OR N$(C) = "apple"): VTAB 18: CALL  -958: VTAB 8 +C: PRINT : CALL  -868
  112. 1120 N$(C) =  LEFT$(N$(C),16): GOTO 980
  113. 1130  IF C < >4  THEN 1150
  114. 1140 PL = 2: GOTO 1720
  115. 1150  VTAB 18: CALL  -958: PRINT : PRINT "THANKS FOR PLAYING!": PRINT 
  116. 1160  VTAB 22: PRINT "TO PLAY, TYPE ";: INVERSE : PRINT "RUN";: NORMAL : PRINT " AND PRESS RETURN.";: CALL  -958: END 
  117. 1170  REM FILE EDIT SECTION
  118. 1180  TEXT : HOME :P = 1: ON PL +1 GOTO 1190,2120,980,1160
  119. 1190  VTAB 2: HTAB 17: PRINT "VIEWING"
  120. 1200  HTAB 15: PRINT "#"P" OUT OF "NP"  "
  121. 1210  GOSUB 1580
  122. 1220  VTAB Y +3: PRINT : CALL  -958
  123. 1230  PRINT  TAB( 3)"<E>DIT THIS PAIR" TAB( 24)"<L>OAD FILE": PRINT 
  124. 1240  PRINT  TAB( 3)"<A>DD NEW PAIR" TAB( 24)"<S>AVE FILE": PRINT 
  125. 1250  PRINT  TAB( 3)"<D>ELETE THIS PAIR" TAB( 24)"<Q>UIT EDITOR": PRINT 
  126. 1260  PRINT  TAB( 3)"( USE ARROWS TO VIEW OTHER PAIRS )"
  127. 1270  WAIT 49152,128: GET K$:K =  ASC(K$): IF K >96  THEN K = K -32:K$ =  CHR$(K)
  128. 1280  IF K = 8  OR K = 11  THEN P = P -1 +NP *(P = 1): GOTO 1190
  129. 1290  IF K = 10  OR K = 21  THEN P = P +1 -NP *(P = NP): GOTO 1190
  130. 1300  IF K$ = "E"  THEN 1450
  131. 1310  IF K$ = "A"  AND NP <101  THEN NP = NP +1:P = NP: VTAB 3: HTAB 15: PRINT "#"P" OUT OF "P:P$(P,1) = "": GOSUB 1580:CY = 0:CX = 0: GOTO 1450
  132. 1320  IF K$ < >"D"  OR NP = 1  THEN 1370
  133. 1330  VTAB 22: PRINT "THROW OUT THIS PAIR (Y/N) ? ";
  134. 1340  GET A$: IF A$ < >"Y"  AND A$ < >"N"  THEN 1340
  135. 1350  PRINT A$: IF A$ = "Y"  THEN P$(P,1) = P$(NP,1):P$(P,2) = P$(NP,2):NP = NP -1:P = P -(P >NP):SV = 0
  136. 1360  GOTO 1190
  137. 1370  IF K$ = "L"  THEN 1720
  138. 1380  IF K$ = "S"  THEN 1790
  139. 1390  IF K$ < >"Q"  THEN 1270
  140. 1400  ON (  NOT SV) +1 GOTO 1160: VTAB 22: PRINT "SAVE CHANGES BEFORE QUITTING (Y/N) ? ";
  141. 1410  GET A$: IF A$ < >"Y"  AND A$ < >"N"  THEN 1410
  142. 1420  PRINT A$: IF A$ = "N"  THEN  PRINT : GOTO 1160
  143. 1430 PL = 3: GOTO 1790
  144. 1440  REM EDIT PAIR #P
  145. 1450  VTAB 2: HTAB 17: PRINT "EDIT": VTAB Y +3: PRINT : CALL  -958:SV = 0
  146. 1460  PRINT "   USE ARROWS TO MOVE CURSOR, AND": PRINT : PRINT "   TYPE DIRECTLY ONTO THE CARDS."
  147. 1470  PRINT : PRINT : PRINT "   PRESS <RETURN> WHEN FINISHED.": INVERSE 
  148. 1480  VTAB Y -1 +CY: HTAB X1 *(CX <13) +X2 *(CX >12) +CX -13 *(CX >12): GET K$:K =  ASC(K$): IF K = 34  OR K = 127  THEN K = K +5 -124 *(K = 127):K$ =  CHR$(K)
  149. 1490  IF K >31  THEN  PRINT K$:U = (CX >12):Z = CY *13 +CX -U *13: IF Z  THEN P$(P,U +1) =  LEFT$(P$(P,U +1),Z) +K$ + MID$ (P$(P,U +1),Z +2):K = 21: GOTO 1520
  150. 1500  IF K >31  THEN P$(P,U +1) = K$ + MID$ (P$(P,U +1),2):K = 21
  151. 1510  IF K = 8  OR K = 127  THEN CX = CX -1 +(CX = 0): GOTO 1480
  152. 1520  IF K = 21  THEN CX = CX +1 -(CX = 25): GOTO 1480
  153. 1530  IF K = 10  THEN CY = CY +1 -(CY = 2): GOTO 1480
  154. 1540  IF K = 11  THEN CY = CY -1 +(CY = 0): GOTO 1480
  155. 1550  IF K = 13  THEN  NORMAL : GOTO 1190
  156. 1560  FOR J = 1 TO 5:U =  PEEK(49200): NEXT : GOTO 1480
  157. 1570  REM DRAW PAIR #P
  158. 1580 Y = 10:X1 = 6:X2 = 23: IF P$(P,1) = ""  THEN P$(P,1) =  LEFT$(SP$,39):P$(P,2) = P$(P,1)
  159. 1590  INVERSE : VTAB Y -2: PRINT : HTAB X1: PRINT  LEFT$(P$(P,1),13);: HTAB X2: PRINT  LEFT$(P$(P,2),13)
  160. 1600  HTAB X1: PRINT  MID$ (P$(P,1),14,13);: HTAB X2: PRINT  MID$ (P$(P,2),14,13): HTAB X1: PRINT  MID$ (P$(P,1),27,13);: HTAB X2: PRINT  MID$ (P$(P,2),27,13)
  161. 1610  NORMAL : RETURN 
  162. 1620  REM  FILE ROUTINES
  163. 1630  HOME : PRINT : PRINT A$: PRINT "(OR USE FILE COMMANDS PREFIX OR CAT, OR <RETURN> TO CANCEL):": PRINT ">";: CALL  -657:F$ = ""
  164. 1640  FOR X = 512 TO 767:A =  PEEK(X) -128: IF A < >13  THEN F$ = F$ + CHR$(A -32 *(A >95)): NEXT 
  165. 1650 X = 768: NEXT : IF F$ = ""  THEN 1700
  166. 1660  IF F$ = "PREFIX"  THEN  PRINT D$F$: INPUT B$: PRINT B$: GOTO 1690
  167. 1670  IF  LEFT$(F$,3) = "CAT"  OR  LEFT$(F$,6) = "PREFIX"  THEN  PRINT : PRINT D$F$: GOTO 1690
  168. 1680  GOTO 1700
  169. 1690  PRINT : PRINT "PRESS ANY KEY: ";: GET B$: GOTO 1630
  170. 1700  ON R GOTO 1740,1810
  171. 1710  REM LOAD FILE 
  172. 1720  HOME : PRINT  TAB( 16)"LOAD FILE": PRINT  TAB( 15)"-----------": POKE 34,3
  173. 1730 A$ = "ENTER FILENAME TO LOAD":R = 1: GOTO 1630
  174. 1740  IF F$ = ""  THEN 1850
  175. 1750  PRINT : PRINT D$"VERIFY"F$: PRINT D$"OPEN"F$: PRINT D$"READ"F$: PRINT "GETTING THE FILE..."
  176. 1760  INPUT NP: FOR J = 1 TO NP: INPUT P$(J,1): INPUT P$(J,2): NEXT 
  177. 1770  PRINT D$"CLOSE": PRINT : PRINT "SUCCESSFULLY READ.":SV = 1: GOTO 1850
  178. 1780  REM SAVE FILE
  179. 1790  HOME : PRINT  TAB( 16)"SAVE FILE": PRINT  TAB( 15)"-----------": POKE 34,3
  180. 1800 A$ = "ENTER FILENAME TO SAVE":R = 2: GOTO 1630
  181. 1810  IF F$ = ""  THEN 1850
  182. 1820  PRINT : PRINT D$"OPEN"F$: PRINT D$"CLOSE": PRINT D$"DELETE"F$: PRINT D$"OPEN"F$: PRINT D$"WRITE"F$
  183. 1830  PRINT NP: FOR J = 1 TO NP: PRINT Q$P$(J,1)Q$: PRINT Q$P$(J,2)Q$: NEXT 
  184. 1840  PRINT D$"CLOSE": PRINT : PRINT "SUCCESSFULLY WRITTEN.":SV = 1
  185. 1850  GOSUB 1860: TEXT : GOTO 1180
  186. 1860  PRINT "PRESS ANY KEY: ";: GET B$: RETURN 
  187. 1870  REM ONERR ROUTINE     
  188. 1880 E =  PEEK(222):L =  PEEK(218) + PEEK(219) *256: IF E >21  OR   NOT E  THEN  PRINT "APPLESOFT ERROR #"E: PRINT "IN LINE "L"." CHR$(7): END 
  189. 1890  IF E = 6  THEN  PRINT "FILE OR PATH NOT FOUND."
  190. 1900  IF E = 16  THEN  PRINT "SYNTAX ERROR."
  191. 1910  IF E = 13  THEN  PRINT "FILE TYPE MISMATCH."
  192. 1920  IF E = 8  THEN  PRINT "DISK ERROR."
  193. 1930  RESTORE : FOR X = 791 TO 800: READ A: POKE X,A: NEXT : CALL 791: DATA 104,168,104,166,223,154,72,152,72,96
  194. 1940  GOSUB 1860: GOTO 1630
  195. 1950  END 
  196. 1960  REM INITIALIZATION
  197. 1970  DIM P$(100,2),BD(18),BN(18)
  198. 1980  FOR J = 1 TO 40:SP$ = SP$ +" ":BC$ = BC$ +"#":UL$ = UL$ + CHR$(95): NEXT :D$ =  CHR$(4):Q$ =  CHR$(34):H$ =  CHR$(8):L$ =  CHR$(124)
  199. 1990 NP = 1:P$(0,1) = ":::::::::::::::  BONUS  :::::::::::::::": REM 15 COLONS EACH SIDE
  200. 2000 P$(1,1) = P$(0,1):P$(1,2) = P$(0,1):NM = 1
  201. 2010  FOR J = 768 TO 777: READ A: NEXT : FOR J = 770 TO 790: READ A: POKE J,A: NEXT 
  202. 2020  DATA 173,48,192,136,208,5,206,1,3,240,9,202,208,245,174,0,3,76,2,3,96
  203. 2030 A$ = "  :: :: :: ::  ":B$ = "::: :: : :: :::":T$(1) = A$ +"::" + LEFT$(SP$,11) +":::: MATCHWORD ::" + LEFT$(SP$,15) +B$:T$(2) = B$ + LEFT$(SP$,15) +":: MATCHWORD ::::" + LEFT$(SP$,11) +"::" +A$
  204. 2040 T$(3) =  MID$ (A$,3,8) + MID$ (B$,8) +":" + LEFT$(SP$,11) +"::   MATCHWORD   ::" + LEFT$(SP$,11) +":" + LEFT$(B$,8) + MID$ (A$,3,8)
  205. 2050  PRINT  CHR$(21): TEXT : HOME : GOSUB 260: TEXT : ONERR  GOTO 1880
  206. 2060 N$(1) = "APPLE":N$(2) = "YOU":CT(1) = 1:CT(2) = 0: FOR J = 1 TO 2:MT(J) = 0:TS(J) = 0: NEXT :NM = 0:N = 1: DEF  FN NT(X) = X +1 -2 *(X = 2)
  207. 2070  VTAB 10: PRINT  TAB( 11)"BY JOSEPH J. STROUT": PRINT "COPYRIGHT (C) 1992, MINDCRAFT PUBLISHING": VTAB 20: PRINT  TAB( 8)"PRESS ";: INVERSE : PRINT " E ";: NORMAL : PRINT " TO EDIT A FILE,": PRINT  TAB( 8)"OR ANY OTHER KEY TO PLAY!"
  208. 2080  IF  PEEK(49152) <128  THEN U =  RND(1): GOSUB 260: GOTO 2080
  209. 2090  GET K$: IF K$ = "E"  OR K$ = "e"  THEN 1180
  210. 2100  TEXT : HOME :PL = 1: PRINT "FIRST YOU NEED TO LOAD A SET OF CARDS!": POKE 34, PEEK(37) +3: HOME 
  211. 2110 A$ = "ENTER NAME OF FILE TO LOAD": GOTO 1720
  212. 2120  IF F$ = ""  THEN 2100
  213. 2130  IF NP <18  THEN  PRINT : PRINT "THIS SET HAS ONLY "NP" PAIRS.": PRINT "18 PAIRS ARE REQUIRED.": PRINT : PRINT "PRESS A KEY: ";: GET A$: RUN 
  214. 2140  GOTO 970