home *** CD-ROM | disk | FTP | other *** search
/ Generous Efforts of Many / gemcd.zip / GEM.CD.B.po / GAMES:BASIC.4 / UNO.bas < prev   
BASIC Source File  |  2010-05-14  |  18KB  |  375 lines

  1. 10  REM ***********************
  2. 20  REM *         UNO         *
  3. 30  REM *     AUGUST 1986     *
  4. 40  REM *  BY JOHN G. THOMAS  *
  5. 50  REM ***********************
  6. 60  REM 
  7. 70  DIM C$(108),C1$(4),M$(28),A$(36),U1(108)
  8. 80 CH$ = " UDE" + CHR$(13) + CHR$(12)
  9. 82  REM CALL  PEEK (175) + 256 *  PEEK          (176) - 46  
  10. 83  REM  GOTO 200
  11. 85  HOME : VTAB 12: HTAB 5: PRINT "Junior Three Software Presents": FOR N = 1 TO 1000: NEXT 
  12. 86  HOME 
  13. 90  GR : POKE  -16302,0
  14. 93  CALL  -1998
  15. 94  COLOR= 9
  16. 95  FOR N = 4 TO 35: READ ST,EN: IF ST = 999  THEN 107
  17. 97  IF N = 12  OR N = 13  OR N = 22  OR N = 23  THEN 105
  18. 100  VLIN ST,EN AT N
  19. 105  NEXT 
  20. 107  FOR N = 27 TO 30: VLIN 4,14 AT N: NEXT 
  21. 112  DATA  4,44,4,44,34,44,34,44,34,44,34,44,4,44,4,44
  22. 114  DATA  4,44, 4,44, 4,44,4,44,4,14,15,24,25,34,35,44,4,44,4,44
  23. 116  DATA    4,44, 4,44, 4,44, 4,44,4,44,34,44,34,44,34,44,34,44,4,44,4,44,999,999
  24. 117  REM   1812 OVERTURE + &"TONE"
  25. 118  CALL  PEEK(175) +256 * PEEK(176) -46
  26. 119  FOR I = 1 TO 229: READ P: READ L: IF LP < >P  THEN  & "TONE",0,4
  27. 120  & "TONE",P,2 *L:LP = P: NEXT : DATA    0,50,170,2,170,2,127,4,113,4,101,4,113,4,127,4,113,4,101,6,0,4,127,6,0,4,127,24,0,8,170,2,170,2,127,4,113,4,101,4,113,4,127,4,113,4,101,6,0,4,127,6,0,4,127,24,0,8
  28. 121  DATA  152,2,152,2,113,4,101,4,113,4,152,4,191,4,152,4,113,4,152,4,191,4,152,4,113,24,0,4,170,2,170,2,127,4,113,4,127,4,170,4,202,4,170,4,127,4,170,4,202,4,170,4,127,24,0,4
  29. 122  DATA 0,3,152,3,152,3,152,3,127,4,0,4,152,4,0,16,170,3,170,3,170,3,135,4,0,4,170,4,0,16,170,3,170,3,170,3,143,4,0,4,152,4,0,4,127,4,0,4,135,4,0,4,113,4,0,4,127,4,0,4,85,6,90,6,95,6,101,6,107,6,113,6,120,6,127,6,135,6,143,6,152,6,161,6
  30. 123  DATA 170,6,0,14,161,6,0,14,152,6,0,14,135,6,0,14,127,4,0,4,170,2,170,2,170,2,113,4,0,4,135,4,0,4,127,4,0,4,170,2,170,2,170,2,113,4,0,3,135,4,0,3,127,4,0,3,135,4,0,3,127,4,0,3,135,4,0,3,127,4,0,3,135,4,0,3,127,4,0,3,135,4,0,3,127,4,0,3
  31. 124  DATA  113,4,0,3,101,4,0,3,113,4,0,3,101,4,0,3,113,4,0,3,101,4,0,3,113,4,0,3,101,4,0,3,85,4,0,3,85,4,0,3,85,4,0,3,85,4,0,3,85,4,0,3,85,4,0,3,85,4,0,3,63,4
  32. 125  DATA  85,2,85,2,63,4,56,4,50,4,56,4,63,4,56,4,50,4,85,2,85,2,101,4,85,4,63,4,85,4,101,4,85,4,63,4,170,2,170,2,127,4,113,4,101,4,113,4,127,4,113,4,101,4,170,2,170,2,202,4,170,4,127,4,170,4,202,4,170,4,127,12,0,10
  33. 126  DATA  255,14,0,4,255,2,202,18,0,4,170,18,0,4,127,28,0,14,101,28,0,14,255,28,0,14,127,28,0,14,255,4,255,70,0,50
  34. 127  TEXT : HOME : FOR N = 1 TO 13: READ L$: PRINT L$: NEXT 
  35. 128  DATA   ***************************************,*                                     *,*           === U N O ===             *
  36. 129  DATA   *                                     *,"*         by John G. Thomas           *",*                                     *
  37. 130  DATA ***************************************,,,,,"press <RETURN> for directions - any","other key to begin game"
  38. 131  PRINT : PRINT : PRINT "Make sure the Caps Lock is down!": PRINT : GET B$: IF B$ < > CHR$(13)  THEN 200
  39. 133  HOME : HTAB 15: PRINT "DIRECTIONS": PRINT 
  40. 135  FOR N = 1 TO 26: READ L$: PRINT L$: IF N = 6  OR N = 13  OR N = 26  THEN  PRINT : PRINT "Press any key to continue. ";: GET L$: HOME 
  41. 136  NEXT 
  42. 137  DATA  "UNO is a card game that may be played bya number of players. This version pits  you against the Apple computer in a two-player game. When UNO is played by two,"
  43. 138  DATA "a REVERSE card is the same as a SKIP.   Otherwise, regular rules apply:",,"1. Each player is dealt 7 cards. One    card is placed face up. This is the     'top card' that the players must match."
  44. 139  DATA  ,"2. Each player discards in turn, match- ing the top card's color or number (or  word in the case of SKIP, REVERSE, or   DRAW TWO). Player must draw a card if nomatching card is held. This card is thenplayable."
  45. 140  DATA  "3. Discarding SKIP, REVERSE, DRAW TWO orWILD DRAW FOUR all cause the other      player to lose a turn and this player   continues until discarding a number     card.",
  46. 141  DATA   "4. When the human plays a WILD card, he inputs a new color at the prompt at the top of the screen. The first letter of  the color will suffice.",
  47. 142  DATA "5. Play continues until a player has onecard left. At this point, he warns the  other player by signaling 'UNO.' If a   player fails to warn, the other player  may signal 'UNO' causing the errant"
  48. 143  DATA "player to draw two extra cards.",
  49. 144  DATA  "6. The winner of a hand is the first to discard all his cards. He receives the  points of the other player's cards.     Scoring is as follows:",,
  50. 145  DATA "-Number cards are worth face value",
  51. 146  DATA "-SKIP, REVERSE, and DRAW TWO are worth   20 points each",
  52. 147  DATA "-WILD DRAW FOUR and WILD cards are       worth 50 points each",,
  53. 148  DATA "Refer to the rules packed with the card game for any rules not covered here.    Enjoy, human!",,
  54. 190 :
  55. 195  REM *** RANDOMIZE ***<CTRL-J>
  56. 198 :
  57. 199  REM *** RANDOMIZE ***<CTRL-J>
  58. 200  HOME : VTAB 12: PRINT "Cut the deck. Press any number or letter key.": PRINT : PRINT : PRINT : GET B$
  59. 205  PRINT : PRINT "Thanks."
  60. 210  FOR N = 1 TO  ASC(B$):N1 =  RND(1): NEXT 
  61. 220  FOR N = 1 TO 700: NEXT 
  62. 230  HOME : VTAB 8: PRINT "One more thing.": PRINT : PRINT : PRINT "Do you want a smart computer to play    against?": PRINT : PRINT : PRINT "Choose:": PRINT 
  63. 240  PRINT "  1> regular computer": PRINT "  2> slightly brighter than the average bear": PRINT : PRINT : PRINT "Press 1 or 2 ";: GET B$
  64. 245  IF B$ <"1"  OR B$ >"2"  THEN  PRINT  CHR$(7); CHR$(7);: GOTO 230
  65. 250 L1 =  VAL(B$) -1
  66. 299  REM *** SHUFFLE ********<CTRL-J>
  67. 300  TEXT : HOME : VTAB 12: HTAB 15: PRINT "SHUFFLING..."
  68. 310  FOR N = 1 TO 4:C$(N) = "WILD": NEXT 
  69. 320  FOR N = 5 TO 8:C$(N) = "WILD DRAW FOUR": NEXT 
  70. 325 C1$(1) = "BLUE":C1$(2) = "GREEN":C1$(3) = "RED":C1$(4) = "YELLOW"
  71. 330  FOR N1 = 1 TO 4: REM  4 COLORS
  72. 340 C$(9 +(N1 -1) *25) = C1$(N1) +" 0"
  73. 350  FOR N2 = 1 TO 2
  74. 355  FOR N3 = 1 TO 9
  75. 360 C$(9 +(N1 -1) *25 +(N2 -1) *9 +N3) = C1$(N1) +" " + STR$(N3)
  76. 370  NEXT N3: NEXT N2
  77. 375  FOR N2 = 1 TO 2
  78. 380 C$(3 +(N1) *25 +(N2 -1) *3) = C1$(N1) +" SKIP"
  79. 385 C$(4 +(N1) *25 +(N2 -1) *3) = C1$(N1) +" REVERSE"
  80. 390 C$(5 +(N1) *25 +(N2 -1) *3) = C1$(N1) +" DRAW TWO"
  81. 397  NEXT N2
  82. 400  NEXT N1
  83. 405  REM 
  84. 410  REM  *** DEAL **********
  85. 415  REM 
  86. 420  HOME : VTAB 12: HTAB 16: PRINT "DEALING..."
  87. 425 U = 0:NC$ = "":VT = 8:HT = 1:CC = 1:OK = 0:AU = 0:MU = 0
  88. 430  FOR N = 1 TO 108:U1(N) = 0: NEXT 
  89. 432 MC = 0:AC = 0
  90. 440  FOR D = 1 TO 7
  91. 450  GOSUB 5000: GOSUB 6000
  92. 460  NEXT 
  93. 465 D = 0: REM  FROM NOW D=COMPUTER FLAG
  94. 470  GOSUB 4000: IF N >4  AND N <9  THEN 470
  95. 474 TC$ = C$(N)
  96. 480  GOSUB 7000
  97. 490  GOSUB 8000
  98. 491 R$ =  RIGHT$(TC$,1)
  99. 492  IF  LEFT$(TC$,1) = "W"  THEN  VTAB 6: HTAB 1: CALL  -868: PRINT "TOP CARD IS WILD. COLOR? ";: FLASH : PRINT "->";: NORMAL : INPUT "";NC$: HTAB 1: CALL  -868:L$ =  LEFT$(NC$,1): IF L$ < >"B"  AND L$ < >"G"  AND L$ < >"R"  AND L$ < >"Y"  THEN  PRINT "<CTRL-G><CTRL-G>": GOTO 492
  100. 493  IF R$ = "O"  THEN  FOR N3 = 1 TO 2: PRINT  CHR$(7);: GOSUB 5000: NEXT : VTAB 6: HTAB 1: INVERSE : PRINT "YOU DREW TWO.": NORMAL : FOR N3 = 1 TO 1500: NEXT : GOTO 600
  101. 494  IF R$ = "P"  THEN  FOR N3 = 1 TO 2: PRINT  CHR$(7);: NEXT : VTAB 6: HTAB 1: INVERSE : PRINT "YOU GOT SKIPPED.": NORMAL : FOR N3 = 1 TO 1500: NEXT : GOTO 600
  102. 495  IF R$ = "E"  THEN  FOR N3 = 1 TO 2: PRINT  CHR$(7);: NEXT : VTAB 6: HTAB 1: INVERSE : PRINT "REVERSE! YOU GOT SKIPPED.": NORMAL : FOR N3 = 1 TO 1500: NEXT : GOTO 600
  103. 496  IF TC$ = "W"  THEN  VTAB 6: HTAB 1: PRINT "YOUR TURN."
  104. 499  REM *** MY TURN ***<CTRL-J>
  105. 500  GOSUB 3000: IF MC = 0  OR AC = 0  THEN 12000
  106. 510  IF  PEEK( -16384) <128  THEN 500
  107. 520 K$ =  CHR$( PEEK( -16384) -128)
  108. 530  POKE  -16368,0: REM  CLEAR STROBE
  109. 540  FOR N1 = 1 TO  LEN(CH$)
  110. 550  IF K$ =  MID$ (CH$,N1,1)  THEN 570
  111. 560  NEXT : GOTO 500
  112. 570  ON N1 GOSUB 9000,9200,9400,9600,9800,9700
  113. 580  IF   NOT D  THEN 500
  114. 585  REM 
  115. 590  REM **** COMPUTER'S TURN **
  116. 595  REM 
  117. 600  IF AC = 0  OR MC = 0  THEN 12000
  118. 605 F = 0:OK = 0:D = 0: VTAB 6: HTAB 1: CALL  -868: PRINT "MY TURN. THINKING..."
  119. 610  IF MU  THEN  GOSUB 9900
  120. 620  IF L1  THEN  GOSUB 12280
  121. 625  FOR N3 = 1 TO 1000: NEXT 
  122. 627 W = 0:W4 = 0: REM  NO WILD CARDS
  123. 630  FOR AA = 1 TO AC
  124. 640 L$ =  LEFT$(A$(AA),1):R$ =  RIGHT$(A$(AA),1)
  125. 650  IF A$(AA) = "WILD"  THEN W = AA
  126. 655  IF A$(AA) = "WILD DRAW FOUR"  THEN W4 = AA
  127. 657  IF NC$ = ""  THEN NC$ = N4$
  128. 660  IF  ASC(L$) =  ASC(NC$)  THEN 700
  129. 665  IF R$ =  RIGHT$(TC$,1)  THEN 700
  130. 670  NEXT AA
  131. 674 N4 = 0
  132. 675  FOR N3 = 1 TO AC: IF  LEFT$(A$(N3),1) < >"W"  THEN N4 = N3: NEXT 
  133. 676  IF  LEFT$(A$(N4),1) = "B"  THEN N4$ = "BLUE"
  134. 677  IF  LEFT$(A$(N4),1) = "G"  THEN N4$ = "GREEN"
  135. 678  IF  LEFT$(A$(N4),1) = "R"  THEN N4$ = "RED"
  136. 679  IF  LEFT$(A$(N4),1) = "Y"  THEN N4$ = "YELLOW"
  137. 680  IF F  AND W = 0  AND W4 = 0  THEN 2000
  138. 685  IF W = 0  AND W4 = 0  THEN  GOSUB 6000:F = 1: GOTO 630
  139. 687  IF W  THEN AA = W:NC$ = N4$: GOTO 700
  140. 690  IF W4  THEN AA = W4:NC$ = N4$:R$ = "R": GOTO 700
  141. 695  REM 
  142. 696  REM ** COMPUTER DISCARDS ***<CTRL-J>
  143. 700 TC$ = A$(AA)
  144. 710  FOR N3 = AA TO AC +1: REM   SLIDE CARDS UP LIST
  145. 720 A$(N3) = A$(N3 +1)
  146. 730  NEXT 
  147. 735  FOR N3 = 1 TO 1500: NEXT 
  148. 740 AC = AC -1: IF AC = 0  AND TC$ = "WILD DRAW FOUR"  THEN  FOR N5 = 1 TO 4: GOSUB 5000: NEXT : GOSUB 8075: GOTO 2000
  149. 745  IF AC = 0  AND R$ = "O"  THEN  GOSUB 5000: GOSUB 5000: GOSUB 8075: GOTO 2000
  150. 747  IF AC = 0  THEN  GOSUB 8075: GOTO 2000
  151. 750  IF R$ < >"R"  AND R$ < >"O"  AND R$ < >"P"  AND R$ < >"E"  THEN  GOSUB 8075: GOTO 2000
  152. 760  IF R$ = "R"  THEN  FOR N3 = 1 TO 4: PRINT  CHR$(7);: GOSUB 5000: NEXT : GOSUB 12230: VTAB 6: HTAB 1: CALL  -868: INVERSE : PRINT "YOU DREW FOUR.": NORMAL : FOR N3 = 1 TO 1500: NEXT : GOTO 627
  153. 765  IF R$ = "O"  THEN  FOR N3 = 1 TO 2: PRINT  CHR$(7);: GOSUB 5000: NEXT : GOSUB 12210: VTAB 6: HTAB 1: CALL  -868: INVERSE : PRINT "YOU DREW TWO.": NORMAL : FOR N3 = 1 TO 1500: NEXT : GOTO 627
  154. 770  IF R$ = "P"  THEN  GOSUB 12210: VTAB 6: HTAB 1: CALL  -868: INVERSE : PRINT "YOU GOT SKIPPED.": NORMAL : FOR N3 = 1 TO 1500: NEXT : GOTO 627
  155. 775  IF R$ = "E"  THEN  GOSUB 12210: VTAB 6: HTAB 1: CALL  -868: INVERSE : PRINT "REVERSE. YOU GOT SKIPPED.": NORMAL : FOR N3 = 1 TO 1500: NEXT : GOTO 627
  156. 790  REM 
  157. 1990  REM 
  158. 1995  REM *** END COMPTR TRN **<CTRL-J>
  159. 2000  VTAB 6: HTAB 1: CALL  -868: PRINT "OK - IT'S YOUR TURN."
  160. 2005  PRINT  CHR$(7);
  161. 2006  IF L1  AND AC = 1  THEN AU = 0: GOSUB 9200: GOTO 2010
  162. 2007  IF AC < >1  THEN 2010
  163. 2008 N3 =  INT( RND(1) *4): IF N3 = 0  THEN AU = 1
  164. 2009  GOSUB 9200
  165. 2010  GOSUB 8075: GOTO 500
  166. 2980  REM 
  167. 2990  REM *** UNO CHECK ***
  168. 2995  REM 
  169. 3000  IF   NOT MU  THEN  RETURN 
  170. 3010 UN = UN +1
  171. 3020  RETURN 
  172. 3910  REM 
  173. 3920  REM ** DRAW CARD SUBR ***
  174. 3930  REM 
  175. 4000 N =  INT( RND( PEEK(78) + PEEK(79) *256) *108) +1
  176. 4003 U = U +1
  177. 4005  FOR N1 = 1 TO U: IF N = U1(N1)  THEN U = U -1: GOTO 4000
  178. 4007  NEXT 
  179. 4010 U1(U) = N
  180. 4040  RETURN 
  181. 4900  REM 
  182. 4910  REM  ** I DRAW A CARD *
  183. 4920  REM 
  184. 5000  GOSUB 4000
  185. 5010 MC = MC +1
  186. 5015  IF MC = 28  THEN N = 4: VTAB 6: HTAB 1: FLASH : PRINT "  ***** PLAY YOUR WILD CARD NOW! *****  ": & "TONE",255,55: NORMAL : REM      FORCE A WILD CARD
  187. 5017  IF MC = 29  THEN MC = 28: GOTO 5030
  188. 5020 M$(MC) = C$(N)
  189. 5030  RETURN 
  190. 5900  REM 
  191. 5910  REM  ** APPLE DRAWS A CARD
  192. 5920  REM 
  193. 6000  GOSUB 4000
  194. 6010 AC = AC +1
  195. 6020 A$(AC) = C$(N)
  196. 6030  RETURN 
  197. 6900  REM 
  198. 6910  REM  ** SORT CARDS ***
  199. 6920  REM 
  200. 7000  REM  PRINT SORTING MSG
  201. 7010 F = MC
  202. 7012  IF F = 0  THEN 7060
  203. 7014 I = F -1
  204. 7016 F = 0
  205. 7020  FOR J = 1 TO I
  206. 7030  IF M$(J +1) <M$(J)  THEN T$ = M$(J +1):M$(J +1) = M$(J):M$(J) = T$:F = J
  207. 7040  NEXT J
  208. 7050  GOTO 7012
  209. 7060  RETURN 
  210. 7900  REM 
  211. 7910  REM *** SET UP SCREEN ***
  212. 7920  REM 
  213. 8000  HOME : HTAB 14: PRINT "*** U N O ***"
  214. 8005  PRINT 
  215. 8010  PRINT "YOUR SCORE =": PRINT "COMPUTER   =
  216. 8020  VTAB 3: HTAB 27: PRINT "COMPUTER HAS"
  217. 8025  VTAB 5: HTAB 1: PRINT "TOP CARD:                 COLOR:"
  218. 8027  VTAB 6: HTAB 1: PRINT "YOU CAN START."
  219. 8030  VTAB 4: HTAB 30: PRINT "CARDS LEFT"
  220. 8035  POKE 34,7
  221. 8040  REM 
  222. 8050  REM *** UPDATE SCREEN ****
  223. 8060  REM 
  224. 8065  VTAB 3: HTAB 14: PRINT "   " + CHR$(8) + CHR$(8) + CHR$(8);MS
  225. 8075  VTAB 4: HTAB 27: PRINT "   " + CHR$(8) + CHR$(8) + CHR$(8);AC
  226. 8083  VTAB 4: HTAB 14: PRINT "   " + CHR$(8) + CHR$(8) + CHR$(8);AS
  227. 8087  VTAB 5: HTAB 11: PRINT "               "
  228. 8089  VTAB 5: HTAB 11: INVERSE : PRINT TC$: NORMAL 
  229. 8090 T$ =  LEFT$(TC$,1)
  230. 8091  IF T$ = "B"  THEN NC$ = "BLUE"
  231. 8092  IF T$ = "G"  THEN NC$ = "GREEN"
  232. 8093  IF T$ = "R"  THEN NC$ = "RED"
  233. 8094  IF T$ = "Y"  THEN NC$ = "YELLOW"
  234. 8097  VTAB 5: HTAB 34: CALL  -868: PRINT NC$
  235. 8099  REM  *** SHOW MY CARDS ** 
  236. 8100  HOME 
  237. 8105  IF MC = 0  THEN  RETURN 
  238. 8110  FOR N1 = 1 TO 14
  239. 8115  IF N1 = 1  THEN  INVERSE : PRINT M$(N1): NORMAL : GOTO 8130
  240. 8120  PRINT M$(N1)
  241. 8130  IF N1 = MC  THEN 8150
  242. 8140  NEXT 
  243. 8150  IF MC <15  THEN 8210
  244. 8160  FOR N1 = 15 TO 28
  245. 8170  VTAB N1 -7: HTAB 20: PRINT M$(N1)
  246. 8175  IF N1 = MC  THEN 8210
  247. 8180  NEXT 
  248. 8195  REM 
  249. 8200  REM ** MY OPTIONS ***<CTRL-J>
  250. 8210  VTAB 23: PRINT "  <SPACE> & <RETURN> = choose card"
  251. 8220  PRINT "<U>=UNO     <D>=draw 1     <E>=end turn";
  252. 8230  RETURN 
  253. 8900  REM 
  254. 8910  REM  **** <SPACEBAR> ***
  255. 8920  REM 
  256. 9000  VTAB VT: HTAB HT: PRINT M$(CC)
  257. 9005 VT = VT +1: IF VT = 22  THEN VT = 8:HT = 20
  258. 9010 CC = CC +1: IF CC = MC +1  THEN CC = 1:VT = 8:HT = 1
  259. 9020  VTAB VT: HTAB HT: INVERSE : PRINT M$(CC): NORMAL 
  260. 9030  RETURN 
  261. 9180  REM 
  262. 9190  REM *** UNO! ***<CTRL-J>
  263. 9200  VTAB 1: HTAB 14: FLASH : PRINT "*** U N O ***": NORMAL 
  264. 9205  PRINT  CHR$(7); CHR$(7);
  265. 9210  IF AU  THEN AU = 0: GOSUB 6000: GOSUB 6000
  266. 9220  IF MU  THEN MU = 0
  267. 9230  FOR N2 = 1 TO 1500: NEXT 
  268. 9240  VTAB 1: HTAB 14: PRINT "*** U N O ***"
  269. 9245 UN = 0
  270. 9250  RETURN 
  271. 9300  REM 
  272. 9310  REM *** MY NEW CARD ***
  273. 9320  REM 
  274. 9400  GOSUB 5000
  275. 9405 AU = 0
  276. 9410  GOSUB 7000
  277. 9415 OK = 1
  278. 9420  GOSUB 8087
  279. 9425 CC = 1:VT = 8:HT = 1
  280. 9430  RETURN 
  281. 9590  REM 
  282. 9595  REM *** <E>ND TURN ***<CTRL-J>
  283. 9600  IF OK  THEN D = 1: RETURN 
  284. 9610  VTAB 6: HTAB 1: CALL  -868: FOR N3 = 1 TO 3: PRINT  CHR$(7);: NEXT : PRINT "YOUR TURN ISN'T OVER YET!!"
  285. 9620  FOR N3 = 1 TO 1500: NEXT : VTAB 6: HTAB 1: CALL  -868: RETURN 
  286. 9690  REM A CHEATER CALLS<CTRL-J>
  287. 9700  HOME 
  288. 9710  FOR N1 = 1 TO 14
  289. 9720  PRINT A$(N1)
  290. 9730  IF N1 = AC  THEN 9750
  291. 9740  NEXT 
  292. 9750  IF AC <15  THEN  GET B$: GOSUB 8100: RETURN 
  293. 9760  FOR N1 = 15 TO 28
  294. 9770  VTAB N1 -7: HTAB 20: PRINT A$(N1)
  295. 9775  IF N1 = AC  THEN  GET B$: GOSUB 8100: RETURN 
  296. 9780  NEXT 
  297. 9785  GET B$: GOSUB 8100: RETURN 
  298. 9790  REM 
  299. 9793  REM *** <RETURN> PRESSED **
  300. 9795  REM 
  301. 9800  IF TC$ = "WILD"  AND  LEFT$(M$(CC),1) =  LEFT$(NC$,1)  THEN 9802
  302. 9801  IF  LEN(TC$) < >14  AND  LEFT$(M$(CC),1) < >"W"  AND  LEFT$(M$(CC),1) < > LEFT$(TC$,1)  AND  RIGHT$(M$(CC),1) < > RIGHT$(TC$,1)  THEN  VTAB 6: HTAB 1: CALL  -868: PRINT "<CTRL-O><CTRL-G><CTRL-O><CTRL-G><CTRL-O><CTRL-G>YOUR CARD MUST MATCH THE TOP CARD!!!": RETURN 
  303. 9802 AU = 0:OK = 0: VTAB 6: HTAB 1: CALL  -868
  304. 9803 R$ =  RIGHT$(M$(CC),1): IF R$ < >"R"  AND R$ < >"O"  AND R$ < >"P"  AND R$ < >"E"  THEN D = 1
  305. 9804  IF R$ = "R"  OR R$ = "O"  OR R$ = "P"  OR R$ = "E"  THEN  VTAB 6: HTAB 1: CALL  -868: PRINT "STILL YOUR TURN."
  306. 9805  IF  LEN(M$(CC)) = 4  THEN  VTAB 6: HTAB 1: CALL  -868: PRINT  CHR$(7); CHR$(7);: PRINT "A WILD CARD. WHAT COLOR NOW? ";: FLASH : PRINT "->";: NORMAL : INPUT "";NC$: VTAB 6: HTAB 1: CALL  -868:L$ =  LEFT$(NC$,1): IF L$ < >"B"  AND L$ < >"G"  AND L$ < >"R"  AND L$ < >"Y"  THEN 9805
  307. 9807  IF R$ = "O"  THEN  GOSUB 6000: GOSUB 6000: GOSUB 8075
  308. 9808  IF R$ = "R"  THEN  VTAB 6: HTAB 1: CALL  -868: PRINT "DRAW FOUR??? OH NO!!": FOR N5 = 1 TO 4: GOSUB 6000: NEXT : GOSUB 8075
  309. 9810 TC$ = M$(CC):M$(CC) = "ZZZ"
  310. 9815 CC = 1:VT = 8:HT = 1
  311. 9820  GOSUB 7000:MC = MC -1
  312. 9830  GOSUB 8087
  313. 9835  IF MC = 1  THEN MU = 1
  314. 9840  RETURN 
  315. 9880  REM 
  316. 9890  REM * COMPUTR CHK 4 UNO **<CTRL-J>
  317. 9900 N3 = 0
  318. 9905 N2 = ( INT( RND(1) *4) +1) *11: IF L1  THEN N2 = N2 *3
  319. 9910 N3 = N3 +1
  320. 9920  IF N3 = N2  THEN MU = 0: GOTO 9970
  321. 9930  IF  PEEK( -16384) <128  THEN 9910: REM  NO KEYPRESS
  322. 9940 K$ =  CHR$( PEEK( -16384) -128)
  323. 9950  IF K$ = "U"  THEN  GOSUB 9200: POKE  -16368,0: RETURN 
  324. 9960  GOTO 9910
  325. 9970  VTAB 1: HTAB 14: FLASH : PRINT "*** U N O ***": VTAB 6: HTAB 1: CALL  -868: PRINT "GOTCHA!!"
  326. 9975  NORMAL 
  327. 9980  GOSUB 12250
  328. 9990  GOSUB 5000: GOSUB 7000: GOSUB 5000: GOSUB 7000
  329. 10000  FOR N3 = 1 TO 100: NEXT 
  330. 10010  VTAB 1: HTAB 14: PRINT "*** U N O ***": VTAB 6: HTAB 1: CALL  -868: PRINT "STILL THINKING...": RETURN 
  331. 11090  REM 
  332. 11095  REM  ** A WINNER!! ***<CTRL-J>
  333. 12000  HOME 
  334. 12010  IF AC = 0  THEN 12020
  335. 12012  PRINT "YOU WON THAT HAND.": PRINT : PRINT "I HAD:": PRINT 
  336. 12014  FOR N = 1 TO AC
  337. 12015 L$ =  LEFT$(A$(N),1):R$ =  RIGHT$(A$(N),1): PRINT A$(N): IF L$ = "W"  THEN MS = MS +50: GOTO 12018
  338. 12016  IF R$ = "O"  OR R$ = "P"  OR R$ = "E"  THEN MS = MS +20: GOTO 12018
  339. 12017 MS = MS + VAL(R$)
  340. 12018  NEXT N
  341. 12019  GOTO 12046
  342. 12020  GOSUB 12250: PRINT "I WON THAT HAND.": PRINT : PRINT "YOU HAD:": PRINT 
  343. 12025  FOR N = 1 TO MC
  344. 12027  PRINT M$(N)
  345. 12030 L$ =  LEFT$(M$(N),1):R$ =  RIGHT$(M$(N),1): IF L$ = "W"  THEN AS = AS +50: GOTO 12045
  346. 12035  IF R$ = "O"  OR R$ = "P"  OR R$ = "E"  THEN AS = AS +20: GOTO 12045
  347. 12040 AS = AS + VAL(R$)
  348. 12045  NEXT N
  349. 12046  PRINT 
  350. 12047  PRINT "YOUR SCORE:       "MS: PRINT "COMPUTER'S SCORE: "AS
  351. 12050  PRINT : PRINT "PRESS ANY KEY TO PLAY ANOTHER HAND ";: GET B$
  352. 12060  GOTO 300
  353. 12100 :
  354. 12150  REM **** MUSIC!! ***<CTRL-J>
  355. 12200  REM  (SHORT) CHARGE
  356. 12210  & "TONE",143,9: & "TONE",107,66: RETURN 
  357. 12220  REM  YAH HAH!
  358. 12230  & "TONE",127,75: & "TONE",151,150: RETURN 
  359. 12240  REM  (LONGER) CHARGE
  360. 12250  & "TONE",127,15: & "TONE",95,15: & "TONE",75,15: & "TONE",63,30: & "TONE",75,15: & "TONE",63,60: RETURN 
  361. 12260 :
  362. 12270  REM *** THE COMPUTER BRIGHTENS<CTRL-J>
  363. 12280 F = AC
  364. 12290  IF F = 0  THEN 12360
  365. 12300 I = F -1
  366. 12310 F = 0
  367. 12320  FOR J = 1 TO I
  368. 12330  IF A$(J +1) >A$(J)  THEN T$ = A$(J +1):A$(J +1) = A$(J):A$(J) = T$:F = J
  369. 12340  NEXT J
  370. 12350  GOTO 12290
  371. 12360  FOR J = 1 TO AC -1
  372. 12370  IF A$(J) = "WILD"  THEN  FOR I = J +1 TO AC:A$(I -1) = A$(I): NEXT I:A$(AC) = "WILD"
  373. 12380  IF A$(J) = "WILD DRAW FOUR"  THEN  FOR I = J +1 TO AC:A$(I -1) = A$(I): NEXT I:A$(AC) = "WILD DRAW FOUR"
  374. 12390  NEXT J
  375. 12400  RETURN