home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Games / OSERO (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  5.0 KB  |  245 lines

  1. 100 REM OSERO 6.3
  2. 110 FORI=1TO39:E$=E$+" ":NEXT
  3. 120 FORI=1TO39:E$=E$+"[157]":NEXT
  4. 130 POKE53280,1:POKE53281,1:POKE53272,21:D$="":REM      C64 MODS 1983
  5. 140 FORI=1TO20:D$=D$+"":NEXT
  6. 150 DIMA(9,9),I4(7),J4(7),D$(2)
  7. 160 PRINT"[152][147]GREETINGS FROM OSERO"
  8. 170 PRINT"DO YOU WANT INSTRUCTIONS ? ";
  9. 180 GOSUB2470:IFX$="N"THENPRINT"NO":GOTO470
  10. 190 PRINT"YES"
  11. 200 PRINT"OSERO[146] IS PLAYED ON AN 8 X 8 BOARD,"
  12. 210 PRINT"ROWS NUMBERED 1[146] TO 8[146] AND COLUMNS A[146] TO H[146]"
  13. 220 PRINT"THE INITIAL CONFIGURATION IS ALL BLANK,"
  14. 230 PRINT"EXECPT FOR THE CENTER FOUR SQUARES,"
  15. 240 PRINT"TRY TO PLACE YOUR PIECE SO THAT IT"
  16. 250 PRINT"OUTFLANKS MINE, CREATING A HORIZONTAL,"
  17. 260 PRINT"VERITICAL,OR DIAGONAL RUN OF MY PIECES,"
  18. 270 PRINT"TURNING THEM INTO YOURS."
  19. 280 PRINT"   [192][192][192][219][192][192][192][219][192][192][192][219][192][192][192][219][192][192][192][219][192][192][192]"
  20. 290 PRINT"      [221] [215] [221] [215] [221] [215] [221] [215] [221] [209]"
  21. 300 PRINT"   [192][192][192][219][192][192][192][219][192][192][192][219][192][192][192][219][192][192][192][219][192][192][192]"
  22. 310 PRINT"EXAMPLE: WHITE OUTFLANKS BLACK,"
  23. 320 PRINT"CAPTURING FOUR OF BLACKS PIECES."
  24. 330 PRINT"[145][145][145][145]";
  25. 340 FORI=1TO20
  26. 350 PRINT"[209][157]";:FORL=1TO200:NEXT
  27. 360 PRINT" [157]";:FORL=1TO200:NEXT
  28. 370 NEXT
  29. 380 PRINT"[209] [221][160][209] [221] [209] [221] [209] [221] [209]"
  30. 390 PRINT"MAKE YOUR MOVE BY ENTERING A NUMBER"
  31. 400 PRINT"FOR THE ROW AND A LETTER FOR THE COLUMN."
  32. 410 PRINT"NOTE: YOU MUST CAPTURE AT LEAST ONE OF"
  33. 420 PRINT"MY PIECES IN THIS WAY IF IT IS AT ALL"
  34. 430 PRINT"POSSIBLE. IF IT IS NOT POSSIBLE, YOU"
  35. 440 PRINT"FORFEIT YOUR TURN BY ENTERING 0[146] A[146] FOR"
  36. 450 PRINT"YOUR MOVE."
  37. 460 F2=0
  38. 470 PRINT"SHOULD I PLAY MY BEST ? ";
  39. 480 S2=0:S4=0:S5=0
  40. 490 GOSUB2470:IFX$="N"THENPRINT"NO":GOTO520
  41. 500 PRINT"YES"
  42. 510 S2=2:S4=1:S5=-2
  43. 520 B=-1:W=1
  44. 530 D$(B+1)="[215]":N$(B+1)="BLACK[146]"
  45. 540 D$(0+1)=" "
  46. 550 D$(W+1)="[209]":N$(W+1)="WHITE"
  47. 560 FORK=0TO7
  48. 570 READI4(K),J4(K)
  49. 580 NEXT
  50. 590 FORI=0TO9:FORJ=0TO9
  51. 600 A(I,J)=0
  52. 610 NEXTJ,I
  53. 620 A(4,4)=W:A(5,5)=W
  54. 630 A(4,5)=B:A(5,4)=B
  55. 640 C1=2:H1=C1:N1=4:Z=0
  56. 650 PRINT"DO YOU WANT BLACK OR WHITE ? ";
  57. 660 C=W:H=B
  58. 670 GOSUB2470:IFX$="B"THENPRINTN$(0):GOTO700
  59. 680 PRINTN$(2)
  60. 690 C=B:H=W
  61. 700 PRINT"[147]";
  62. 710 GOSUB2170
  63. 720 PRINTD$"DO YOU WANT TO GO FIRST ? ";
  64. 730 GOSUB2470:IFX$="Y"THENPRINT"YES":GOTO1140
  65. 740 PRINT"NO":PRINT"OK, I AM THINKING !"
  66. 750 B1=-1:I3=0:J3=0:T1=C:T2=H
  67. 760 FORI=1TO8:FORJ=1TO8
  68. 770 IF A(I,J)<>0THEN930
  69. 780 GOSUB1840
  70. 790 IFF1=0THEN930
  71. 800 U=-1
  72. 810 GOSUB1920
  73. 820 IFS1=0THEN930
  74. 830 IF(I=1)OR(I=8)THENS1=S1+S2
  75. 840 IF(J=1)OR(J=8)THENS1=S1+S2
  76. 850 IF(I=2)OR(I=7)THENS1=S1+S5
  77. 860 IF(J=2)OR(J=7)THENS1=S1+S5
  78. 870 IF(I=3)OR(I=6)THENS1=S1+S4
  79. 880 IF(J=3)OR(J=6)THENS1=S1+S4
  80. 890 IFS1<B1THEN930
  81. 900 IFS1>B1THEN920
  82. 910 IFRND(1)>0.5THEN930
  83. 920 B1=S1:I3=I:J3=J
  84. 930 NEXTJ,I
  85. 940 IFB1>0THEN1010
  86. 950 IFS5=0THEN970
  87. 960 S5=0:PRINT"S5=2":GOTO750
  88. 970 PRINTD$""E$"I HAVE TO FORFEIT MY MOVE"
  89. 980 IFZ=1THEN1500
  90. 990 Z=1
  91. 1000 GOTO1140
  92. 1010 Z=0
  93. 1020 PRINTD$""E$"I WILL MOVE TO "RIGHT$(STR$(I3),1)"[146] "CHR$(J3+64)
  94. 1030 GOSUB2400
  95. 1040 I=I3:J=J3:U=1
  96. 1050 GOSUB1920
  97. 1060 C1=C1+S1+1
  98. 1070 H1=H1-S1
  99. 1080 N1=N1+1
  100. 1090 PRINTD$""E$"THAT GIVES ME ";
  101. 1100 PRINTS1;
  102. 1110 PRINT" OF YOUR PIECES"
  103. 1120 GOSUB2170
  104. 1130 IFH1=0ORN1=64THEN1500
  105. 1140 T1=H:T2=C
  106. 1150 PRINTD$;E$"INPUT YOUR MOVE -- ROW[146] COL[146]  ";
  107. 1160 GOSUB2330
  108. 1170 IF(I<0)OR(J<0)THEN1150
  109. 1180 IFI<>0THEN1250
  110. 1190 PRINTD$;E$"ARE YOU FORFEITING YOUR TURN ? ";
  111. 1200 GOSUB2470:IFX$<>"Y"THENPRINT"NO":GOTO1150
  112. 1210 PRINT"YES"
  113. 1220 IFZ=1THEN1500
  114. 1230 Z=1
  115. 1240 GOTO750
  116. 1250 IF A(I,J)=0THEN1280
  117. 1260 PRINTD$""E$"SORRY,SQUARE OCCUPIED;TRY AGAIN"
  118. 1270 GOTO1360
  119. 1280 GOSUB1840
  120. 1290 IFF1=1THEN1320
  121. 1300 PRINTD$""E$"SORRY,NOT NEXT TO MY PIECES;TRY AGAIN"
  122. 1310 GOTO1360
  123. 1320 U=-1
  124. 1330 GOSUB1920
  125. 1340 IFS1>0THEN1380
  126. 1350 PRINTD$""E$"SORRY,DOESN'T FLANK A ROW;TRY AGAIN"
  127. 1360 PRINTE$
  128. 1370 GOTO1150
  129. 1380 Z=0
  130. 1390 PRINTD$""E$"THAT GIVES YOU ";
  131. 1400 PRINTS1;
  132. 1410 PRINT" OF MY PIECES":PRINTE$
  133. 1420 U=1
  134. 1430 GOSUB1920
  135. 1440 H1=H1+S1+1
  136. 1450 C1=C1-S1
  137. 1460 N1=N1+1
  138. 1470 GOSUB2170
  139. 1480 IFC1=0ORN1=64THEN1500
  140. 1490 GOTO750
  141. 1500 PRINTD$;E$:PRINTE$:PRINTE$
  142. 1510 PRINTD$;E$"YOU HAVE "H1"PIECES"
  143. 1520 PRINT"I HAVE "C1"PIECES"
  144. 1530 IFH1=C1THEN1570
  145. 1540 IFH1>C1THEN1590
  146. 1550 PRINT"SORRY, I WON THAT ONE."
  147. 1560 GOTO1600
  148. 1570 PRINT"A TIE !!"
  149. 1580 GOTO1780
  150. 1590 PRINT"YOU WON !"
  151. 1600 C1=C1-H1
  152. 1610 IFC1>0THEN1630
  153. 1620 C1=-C1
  154. 1630 C1=(64*C1)/N1
  155. 1640 PRINT"THAT WAS A ";
  156. 1650 IFC1<11THEN1770
  157. 1660 IFC1<25THEN1750
  158. 1670 IFC1<39THEN1730
  159. 1680 IFC1<53THEN1710
  160. 1690 PRINT"PERFECT GAME."
  161. 1700 GOTO1780
  162. 1710 PRINT"WALKAWAY."
  163. 1720 GOTO1780
  164. 1730 PRINT"FIGHT."
  165. 1740 GOTO1780
  166. 1750 PRINT"HOT GAME !"
  167. 1760 GOTO1780
  168. 1770 PRINT"SQUEAKER !"
  169. 1780 PRINT
  170. 1790 PRINT"DO YOU WANT TO PLAY ANOTHER GAME ? ";
  171. 1800 GOSUB2470:IFX$="Y"THENPRINT"YES":GOTO590
  172. 1810 PRINT"NO"
  173. 1820 PRINT"THANKS FOR PLAYING."
  174. 1830 STOP
  175. 1840 F1=0
  176. 1850 FORI1=-1TO1
  177. 1860 FORJ1=-1TO1
  178. 1870 IFA(I+I1,J+J1)=T2THEN1900
  179. 1880 NEXTJ1,I1
  180. 1890 RETURN
  181. 1900 F1=1
  182. 1910 RETURN
  183. 1920 S1=0
  184. 1930 FORK=0TO7
  185. 1940 I5=I4(K)
  186. 1950 J5=J4(K)
  187. 1960 I6=I+I5
  188. 1970 J6=J+J5
  189. 1980 S3=0
  190. 1990 IFA(I6,J6)<>T2THEN2150
  191. 2000 S3=S3+1
  192. 2010 I6=I6+I5
  193. 2020 J6=J6+J5
  194. 2030 IFA(I6,J6)=T1THEN2060
  195. 2040 IFA(I6,J6)=0 THEN2150
  196. 2050 GOTO2000
  197. 2060 S1=S1+S3
  198. 2070 IFU<>1THEN2150
  199. 2080 I6=I
  200. 2090 J6=J
  201. 2100 FORK1=0TOS3
  202. 2110 A(I6,J6)=T1
  203. 2120 I6=I6+I5
  204. 2130 J6=J6+J5
  205. 2140 NEXTK1
  206. 2150 NEXTK
  207. 2160 RETURN
  208. 2170 PRINT"               O S E R O  [146]           "
  209. 2180 X$="   [171][192][192][192][219][192][192][192][219][192][192][192][219][192][192][192][219][192][192][192][219][192][192][192][219][192][192][192][219][192][192][192][179]"
  210. 2190 PRINTE$
  211. 2200 PRINT"     A   B   C   D   E   F   G   H    "
  212. 2210 PRINT"   [176][192][192][192][178][192][192][192][178][192][192][192][178][192][192][192][178][192][192][192][178][192][192][192][178][192][192][192][178][192][192][192][174]"
  213. 2220 FORI=1TO8
  214. 2230 PRINTI"[221] ";
  215. 2240 FORJ=1TO8
  216. 2250 PRINTD$(A(I,J)+1)" [221] ";
  217. 2260 NEXTJ
  218. 2270 PRINT:IFI<>8THENPRINTX$
  219. 2280 NEXTI
  220. 2290 PRINT"   [173][192][192][192][177][192][192][192][177][192][192][192][177][192][192][192][177][192][192][192][177][192][192][192][177][192][192][192][177][192][192][192][189]"
  221. 2300 RETURN
  222. 2310 REM INPUT SUBROUTINE
  223. 2320 PRINTD$""E$"BAD MOVE; TRY AGAIN."
  224. 2330 I=-1:J=I
  225. 2340 FORK=1TO2
  226. 2350 GOSUB2470
  227. 2360 G=ASC(X$)
  228. 2370 IF47<GANDG<58THENI=G-48:PRINT""X$"[146] ";
  229. 2380 IF64<GANDG<74THENJ=G-64:PRINT""X$"[146] ";
  230. 2390 NEXT:RETURN
  231. 2400 REM BLINK COMPUTERS MOVE
  232. 2410 PRINTLEFT$(D$,2*(I3-1)+5);SPC(4*(J3-1)+5);
  233. 2420 X$=D$(C+1)
  234. 2430 FORK=1TO9
  235. 2440 PRINTX$"[157]";:FORL=1TO200:NEXT
  236. 2450 PRINT" [157]";:FORL=1TO200:NEXT
  237. 2460 NEXT:RETURN
  238. 2470 REM INPUT WITH CURSOR
  239. 2480 FORL=0TO9:GETX$:NEXT
  240. 2490 GETX$:IFX$<>""THENRETURN
  241. 2500 PRINT"[166][157]";:FORL=1TO100:NEXT
  242. 2510 PRINT" [157]";:FORL=1TO100:NEXT
  243. 2520 GOTO2490
  244. 2530 DATA 0,1,-1,1,-1,0,-1,-1,0,-1,1,-1,1,0,1,1
  245.