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

  1. 1 REM    TRIANGLE    BY JIM COOPER
  2. 2 REM FROM QS! DISK # G1 P/PD # 49          PD 77     GET$ AT 1300
  3. 10 PRINTCHR$(147):GOTO900
  4. 20 POKECU+1,X:POKECU+3,Y:SYS CU:RETURN
  5. 30 PRINTCHR$(19):POKE209,X:POKE210,Y:RETURN
  6. 40 POKEWF,WL:POKEHF,0:POKELF,0:RETURN
  7. 50 GOSUB20:PRINT"[172] [187]"
  8. 55 X=X-1:Y=Y+1:GOSUB20:PRINT"[161] [215] [146][161]"
  9. 60 X=X+1:Y=Y+1:GOSUB20:PRINT" [192] ":RETURN
  10. 65 GOSUB20:PRINT" [192] ":RETURN
  11. 70 FORA=1TO10
  12. 75 POKEHF,H(5):POKELF,L(5):POKEWF,WH
  13. 80 GOSUB20:PRINT"[173][192][189]":FORT=1TO8:NEXT
  14. 85 POKEHF,H(8):POKELF,L(8):POKEWF,WH
  15. 90 GOSUB20:PRINT"[202][192][203]":FORT=1TO8:NEXT:NEXT
  16. 95 GOSUB40:GOTO65
  17. 100 FORA=1TO15:B=INT(RND(.)*12)+5
  18. 105 POKEHF,H(B):POKELF,L(B):POKEWF,WH:
  19. 110 GOSUB20:PRINT" [209] ":FORT=1TO5:NEXT
  20. 115 GOSUB40:GOSUB20:PRINT" [192] ":NEXT:FORT=1TO250:NEXT:RETURN
  21. 120 GOSUB20:PRINT"   "
  22. 125 X=X-1:Y=Y+1:GOSUB20:PRINT"  [209]  "
  23. 130 X=X+1:Y=Y+1:GOSUB20:PRINT"   ":RETURN
  24. 135 FORA=31TO39
  25. 140 POKEHF,H(A):POKELF,L(A):POKEWF,WH
  26. 145 GOSUB20:PRINT"[213][192][201]"
  27. 150 FORT=1TO40:NEXT:NEXT:GOSUB40:GOTO65
  28. 155 X=192:Y=7:POKEHF,H(5):POKELF,L(5):POKEWF,WH
  29. 160 GOSUB30:ONPPGOTO165,175
  30. 165 PRINT"[154] USE CURSOR RIGHT & DOWN TO SELECT MAN  "
  31. 170 PP=PP+1:GOTO180
  32. 175 PRINT"[156] USE CURSOR RIGHT & DOWN TO SELECT PEG  ":PP=1
  33. 180 FORT=1TO50:NEXT:GOSUB40:RETURN
  34. 200 ONAGOTO205,210,215,220,225,230,235,240,245,250,255,260,265,270,275
  35. 205 X=18:Y=2:POKECC,1:RETURN
  36. 210 X=15:Y=6:POKECC,2:RETURN
  37. 215 X=21:Y=6:POKECC,3:RETURN
  38. 220 X=12:Y=10:POKECC,4:RETURN
  39. 225 X=18:Y=10:POKECC,5:RETURN
  40. 230 X=24:Y=10:POKECC,6:RETURN
  41. 235 X=9:Y=14:POKECC,7:RETURN
  42. 240 X=15:Y=14:POKECC,8:RETURN
  43. 245 X=21:Y=14:POKECC,9:RETURN
  44. 250 X=27:Y=14:POKECC,10:RETURN
  45. 255 X=6:Y=18:POKECC,11:RETURN
  46. 260 X=12:Y=18:POKECC,12:RETURN
  47. 265 X=18:Y=18:POKECC,13:RETURN
  48. 270 X=24:Y=18:POKECC,14:RETURN
  49. 275 X=30:Y=18:POKECC,15:RETURN
  50. 300 POKESB,PEEK(SB)AND239
  51. 305 GOSUB20:PRINT"   "
  52. 310 X=X-1:Y=Y+1:GOSUB20:PRINT"  [209]  "
  53. 315 X=X+1:Y=Y+1:GOSUB20:PRINT"   "
  54. 320 X=112:Y=7:GOSUB30:PRINT"                                        "
  55. 325 X=152:Y=7:GOSUB30:PRINT"                                        "
  56. 330 X=192:Y=7:GOSUB30:PRINT"                                        "
  57. 335 GOTO500
  58. 350 FORA=1TO3:GOSUB40
  59. 355 X=192:Y=7:GOSUB30:PRINT"[150]              ILLEGAL MOVE              "
  60. 360 FORB=1TO15
  61. 365 POKEVL,15:FORT=1TO3:NEXT:POKEVL,0:NEXT:FORT=1TO200:NEXT
  62. 370 X=192:Y=7:GOSUB30:PRINT"[150]                                        "
  63. 375 FORT=1TO50:NEXT
  64. 380 NEXT:FORT=1TO100:NEXT:POKEVL,15:PP=1:GOTO500
  65. 400 GOSUB40:CN=PEEK(PL)
  66. 405 GETA$
  67. 410 POKEPL,87:FORT=1TO25:NEXT
  68. 415 POKEPL,CN:FORT=1TO25:NEXT:IFPEEK(PL)=81THENPOKEPL+LF,1
  69. 420 IFA$=""THEN400
  70. 425 IFA$=CHR$(13)THENRETURN
  71. 430 IFA$=CHR$(29)THEN445
  72. 435 IFA$=CHR$(17)THEN470
  73. 440 GOTO405
  74. 445 FORA=1TO14:IFPL=A(A)THEN460
  75. 450 NEXT
  76. 455 POKEHF,H(A+15):POKELF,L(A+15):POKEWF,WH:FORT=1TO20:NEXT:PL=A(1):GOTO400
  77. 460 POKEHF,H(A+15):POKELF,L(A+15):POKEWF,WH:FORT=1TO20:NEXT
  78. 465 B=A+1:PL=A(B):GOTO400
  79. 470 FORA=15TO2STEP-1:IFPL=A(A)THEN490
  80. 475 NEXT
  81. 480 POKEHF,H(A+15):POKELF,L(A+15):POKEWF,WH:FORT=1TO20:NEXT
  82. 485 PL=A(15):GOTO400
  83. 490 POKEHF,H(A+15):POKELF,L(A+15):POKEWF,WH:FORT=1TO20:NEXT
  84. 495 B=A-1:PL=A(B):GOTO400
  85. 500 PP=1:GOSUB155:POKESB,PEEK(SB)OR16
  86. 505 GETA$:IFA$<>""THEN505
  87. 510 GOSUB400:IFPEEK(PL)<>215THEN350
  88. 515 P1=PL
  89. 520 FORA=1TO15:IFPL=A(A)THEN530
  90. 525 NEXT
  91. 530 GOSUB200
  92. 535 Y=Y+2:GOSUB135:FORT=1TO500:NEXT
  93. 540 GOSUB155
  94. 545 GOSUB400:IFPEEK(PL)<>81THEN350
  95. 550 P2=PL
  96. 555 IFPEEK(PL-6)=215THENIFPEEK(PL-12)=215THENIFPL-12=P1THEN590
  97. 560 IFPEEK(PL+6)=215THENIFPEEK(PL+12)=215THENIFPL+12=P1THEN590
  98. 565 IFPEEK(PL-157)=215THENIFPEEK(PL-314)=215THENIFPL-314=P1THEN590
  99. 570 IFPEEK(PL+157)=215THENIFPEEK(PL+314)=215THENIFPL+314=P1THEN590
  100. 575 IFPEEK(PL-163)=215THENIFPEEK(PL-326)=215THENIFPL-326=P1THEN590
  101. 580 IFPEEK(PL+163)=215THENIFPEEK(PL+326)=215THENIFPL+326=P1THEN590
  102. 585 GOTO350
  103. 590 IFP2>P1THEN600
  104. 595 P3=(P1-P2)/2+P2:GOTO605
  105. 600 P3=(P2-P1)/2+P1
  106. 605 FORA=1TO15:IFP3=A(A)THEN615
  107. 610 NEXT
  108. 615 GOSUB200:Y=Y+2:GOSUB100:FORT=1TO500:NEXT
  109. 620 FORA=1TO15:IFP3=A(A)THEN630
  110. 625 NEXT
  111. 630 GOSUB200:GOSUB120:FORT=1TO175:NEXT
  112. 635 FORA=1TO15:IFP1=A(A)THEN645
  113. 640 NEXT
  114. 645 GOSUB200:GOSUB120:FORT=1TO175:NEXT
  115. 650 FORA=1TO15:IFP2=A(A)THEN660
  116. 655 NEXT
  117. 660 GOSUB200:GOSUB50
  118. 665 GOSUB70:FORT=1TO500:NEXT:A=1
  119. 670 IFA=16THEN730
  120. 675 IFPEEK(A(A))<>215THEN725
  121. 680 B1=A(A):B2=B1-6:B3=B1-12:B4=B1+6:B5=B1+12
  122. 685 IFPEEK(B2)=215THENIFPEEK(B3)=81THEN500
  123. 690 IFPEEK(B4)=215THENIFPEEK(B5)=81THEN500
  124. 695 B1=A(A):B2=B1-157:B3=B1-314:B4=B1+157:B5=B1+314
  125. 700 IFPEEK(B2)=215THENIFPEEK(B3)=81THEN500
  126. 705 IFPEEK(B4)=215THENIFPEEK(B5)=81THEN500
  127. 710 B1=A(A):B2=B1-163:B3=B1-326:B4=B1+163:B5=B1+326
  128. 715 IFPEEK(B2)=215THENIFPEEK(B3)=81THEN500
  129. 720 IFPEEK(B4)=215THENIFPEEK(B5)=81THEN500
  130. 725 A=A+1:GOTO670
  131. 730 FS=0
  132. 735 FORA=1TO15
  133. 740 IFPEEK(A(A))=215THENQ=Q+1
  134. 745 NEXT:PRINTCHR$(147)
  135. 750 X=192:Y=7:GOSUB30:PRINT"[152]                GAME OVER               "
  136. 755 IFPL=LPTHEN785
  137. 760 ONQGOTO765,770,775,780
  138. 765 X=13:Y=11:GOSUB20:PRINT"EXPERT  PLAYER!":GOTO805
  139. 770 X=13:Y=11:GOSUB20:PRINT"AVERAGE  PLAYER":GOTO805
  140. 775 X=12:Y=11:GOSUB20:PRINT"YOU CAN DO BETTER":GOTO805
  141. 780 X=12:Y=11:GOSUB20:PRINT"TRY AND TRY AGAIN":GOTO805
  142. 785 X=13:Y=11:GOSUB20:PRINT"LOGIC   EXPERT!"
  143. 790 FORA=1TO75:B=INT(RND(.)*7)+1:C=INT(RND(.)*15)+1
  144. 795 POKEHF,H(B+10):POKELF,L(B+10):POKEWF,WH
  145. 800 POKEBC,C:FORT=1TO90:NEXT:GOSUB40:NEXT
  146. 805 FORT=1TO1000:NEXT:POKEBC,0:PRINTCHR$(147)
  147. 810 X=10:Y=10:GOSUB20:PRINT"PRESS P TO PLAY AGAIN"
  148. 815 X=13:Y=13:GOSUB20:PRINT"PRESS S TO STOP"
  149. 820 POKEHF,H(8):POKELF,L(8):POKEWF,WH
  150. 825 X=192:Y=7:GOSUB30:PRINT"           TYPE IN THE LETTER           "
  151. 830 FORT=1TO150:NEXT:GOSUB40
  152. 835 GETA$:IFA$<>"P"THENIFA$<>"S"THEN835
  153. 840 PRINTCHR$(147)
  154. 845 IFA$="P"THEN1140
  155. 850 IFA$="S"THENSTOP
  156. 900 CC=646:SB=53265:BC=53280:SC=53281:CM=54272:CU=679
  157. 910 READA:POKECU,A:IFA=96THENCU=679:GOTO930
  158. 920 CU=CU+1:GOTO910
  159. 930 DIMH(41):DIML(41)
  160. 940 FORA=1TO41:READB:READC:H(A)=B:L(A)=C:NEXT
  161. 950 FORMU=54272TO54296:POKEMU,0:NEXT:POKE54277,64:POKE54278,128
  162. 960 HF=54273:LF=54272:WF=54276:WH=17:WL=16:GOSUB40:VL=54296:POKEVL,15
  163. 970 GOSUB40:VL=54296:POKEVL,15
  164. 980 DIMA(15):POKEBC,0:POKESC,0
  165. 990 FORA=1TO15:READB:A(A)=B:NEXT
  166. 1000 X=12:Y=8:GOSUB20:PRINT"[150]T R I A N G L E"
  167. 1005 X=18:Y=11:GOSUB20:PRINT"B Y"
  168. 1010 X=10:Y=14:GOSUB20:PRINT"J I M   C O O P E R "
  169. 1015 FORT=1TO500:NEXT
  170. 1020 POKEHF,H(8):POKELF,L(8):POKEWF,WH
  171. 1025 X=192:Y=7:GOSUB30:PRINT"         PRESS ANY KEY TO START         "
  172. 1030 FORT=1TO150:NEXT:GOSUB40
  173. 1035 GETA$:IFA$=""THEN1035
  174. 1040 PRINTCHR$(147)
  175. 1045 X=7:Y=8:GOSUB20:PRINT"[156]I N S T R U C T I O N S ?"
  176. 1050 X=15:Y=11:GOSUB20:PRINT"Y = Y E S "
  177. 1055 X=16:Y=14:GOSUB20:PRINT"N = N O "
  178. 1060 FORT=1TO500:NEXT
  179. 1065 POKEHF,H(8):POKELF,L(8):POKEWF,WH
  180. 1070 X=192:Y=7:GOSUB30:PRINT"           TYPE IN THE LETTER           "
  181. 1075 FORT=1TO150:NEXT:GOSUB40
  182. 1080 GETA$:IFA$<>"Y"THENIFA$<>"N"THEN1080
  183. 1085 PRINTCHR$(147)
  184. 1090 IFA$="Y"THEN1100
  185. 1095 IFA$="N"THEN1200
  186. 1100 PRINT:PRINT"[152]THE OBJECT OF THE GAME IS TO HAVE THE"
  187. 1105 PRINT:PRINT"LAST GAME PIECE LAND ON THE PEG YOU"
  188. 1110 PRINT:PRINT"HAVE SELECTED PRIOR TO THE START OF"
  189. 1115 PRINT:PRINT"THE ROUND.  USE CURSOR CONTROLS TO"
  190. 1120 PRINT:PRINT"POSITION CURSOR OVER MAN YOU WANT TO"
  191. 1125 PRINT:PRINT"MOVE.  THEN PRESS RETURN.  MOVE CURSOR"
  192. 1130 PRINT:PRINT"TO PEG YOU WANT TO MOVE TO AND PRESS"
  193. 1135 PRINT:PRINT"RETURN AGAIN.  YOU MUST JUMP ONLY ONE"
  194. 1140 PRINT:PRINT"PIECE ON EACH MOVE AND THERE MUST BE"
  195. 1145 PRINT:PRINT"AN OPEN PEG IN THE LOCATION YOU"
  196. 1150 PRINT:PRINT"JUMP TO."
  197. 1155 FORT=1TO500:NEXT
  198. 1160 POKEHF,H(8):POKELF,L(8):POKEWF,WH
  199. 1165 X=192:Y=7:GOSUB30:PRINT"       PRESS ANY KEY TO CONTINUE        "
  200. 1170 FORT=1TO150:NEXT:GOSUB40
  201. 1175 GETA$:IFA$=""THEN1175
  202. 1180 PRINTCHR$(147)
  203. 1200 POKESB,PEEK(SB)AND239
  204. 1205 FORA=1TO15:GOSUB200:GOSUB50:NEXT
  205. 1210 X=112:Y=7:GOSUB30:PRINT" USE THE RIGHT AND DOWN CURSOR CONTROLS "
  206. 1215 X=152:Y=7:GOSUB30:PRINT"  TO SELECT THE PEG YOU WANT YOUR LAST  "
  207. 1220 X=192:Y=7:GOSUB30:PRINT"   MAN TO LAND ON.  THEN PRESS RETURN   "
  208. 1225 POKESB,PEEK(SB)OR16
  209. 1230 POKEHF,H(8):POKELF,L(8):POKEWF,WH:FORT=1TO225:NEXT:GOSUB40
  210. 1300 PL=A(1)
  211. 1305 GETA$
  212. 1310 POKEPL,87:FORT=1TO25:NEXT
  213. 1315 POKEPL,215:FORT=1TO25:NEXT
  214. 1320 IFA$=""THEN1305
  215. 1325 IFA$=CHR$(13)THEN1400
  216. 1330 IFA$=CHR$(29)THEN1350
  217. 1335 IFA$=CHR$(17)THEN1370
  218. 1340 GOTO1305
  219. 1350 FORA=1TO14:IFPL=A(A)THEN1365
  220. 1355 NEXT
  221. 1360 FORT=1TO25:GOTO1300
  222. 1365 FORT=1TO25:NEXT:B=A+1:PL=A(B):GOTO1305
  223. 1370 FORA=15TO2STEP-1:IFPL=A(A)THEN1385
  224. 1375 NEXT
  225. 1380 FORT=1TO25:NEXT:PL=A(15):GOTO1305
  226. 1385 FORT=1TO25:B=A-1:PL=A(B):GOTO1305
  227. 1400 LP=PL:FORA=1TO15:IFPL=A(A)THEN1410
  228. 1405 NEXT
  229. 1410 GOSUB200
  230. 1415 GOTO300
  231. 1500 DATA160,0,162,0,24,32,240,255,96
  232. 1510 DATA0,0,253,46,225,143,200,243,179,6,168,250,150,139,134,30,126,151,112
  233. 1520 DATA199,100,121,89,131,84,125,75,69,67,15,63,74,56,99,50,60,44,193,42
  234. 1530 DATA62,37,162,33,135,31,165,28,49,25,30,22,96,21,31,18,209,16,195,15,210
  235. 1540 DATA14,24,12,143,11,48,10,143,9,104,8,97,7,233,7,12,6,71,5,152,0,0
  236. 1600 DATA1163,1320,1326,1477,1483,1489,1634,1640,1646,1652
  237. 1610 DATA1791,1797,1803,1809,1815
  238.