home *** CD-ROM | disk | FTP | other *** search
/ Floppy Magazine 1986 #1 / Floppy_Magazine_86-1_1986_Megasystems_Oy_fi.d64 / nappipeli (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  9KB  |  279 lines

  1. 1 rem *****************
  2. 2 rem *   nappipeli   *
  3. 3 rem * by j. viskari *
  4. 4 rem * (c) mcmlxxxvi *
  5. 5 rem *****************
  6. 6 rem""(NULL)
  7. 8 a$="      [146]"
  8. 9 f$="[194][160][194][160][194][160][194][160][194]  ":g$="[171][195][219][195][219][195][219][195][179]  "
  9. 10 poke53280,8:poke53281,8
  10. 11 print"[147][144]           n a p p i p e l i"
  11. 12 h$="[176][195][178][195][178][195][178][195][174]  ":i$="[173][195][177][195][177][195][177][195][189]  "
  12. 13 print"           [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]"
  13. 14 print"[149]":forx=1to7:printa$:next
  14. 15 print"[213][195][195][195]  [146] [195][195][195][201]":print"[194]     [146]    [194]"
  15. 16 print"[194]   [213] [146][201]   [194]":print"[194]   [202][195][203]   [194]"
  16. 17 print"[194]         [194]"
  17. 18 print"[202][195][195][195][195][195][195][195][195][195][203]"
  18. 19 print""
  19. 20 printtab(16)"[144]taattua":printtab(16)"kotimaista"
  20. 21 printtab(16)"[194][194][194][194][194][194][194]"
  21. 22 printtab(15)"[195][219][219][219][219][219][219][219][201]"
  22. 24 printtab(15)"[195][219][219][219][219][219][219][219][203]  -tuotantoa"
  23. 26 printtab(15)"[195][219][219][219][219][219][219][219][195]"
  24. 28 printtab(16)"[194][202][203][202][203][194][194]     (1986)":goto40
  25. 30 fory=1to150:next:return
  26. 35 forxy=0to300:next:return
  27. 40 u=53248:forx=0to4:readl(x),h(x):next
  28. 45 forx=832to894:reado:pokex,o:next
  29. 50 forx=2040to2043:pokex,13:next:poke2044,250
  30. 55 pokeu+28,31:pokeu+38,0
  31. 57 cr=2:forx=0to4:cr=9-cr:pokeu+39+x,cr:next
  32. 60 forx=1to9step2:pokeu+x,75:next:pokeu+29,31:pokeu+23,31
  33. 65 forx=0to4:pokeu+2*x,l(x):next:pokeu+21,1
  34. 70 forx=896to958:reado:pokex,o:next:pokeu+21,3
  35. 75 forx=960to1022:reado:pokex,o:next:pokeu+21,7
  36. 80 forx=16000to16062:pokex,0:next:forx=16004to16022step3:reado:pokex,o:next
  37. 81 pokeu+21,15:pokeu+27,16:gosub35
  38. 85 forx=3to0step-1:cr=9-cr:pokeu+43,cr
  39. 88 fora=l(x)to44step-1:pokeu+2*x,a:fori=1to4:next:next
  40. 90 gosub30:poke2040+x,14:gosub30:pokeu+21,31:pokeu+9,75:poke2040+x,15:gosub30
  41. 93 fora=75toh(x):pokeu+2*x+1,a:pokeu+9,a
  42. 94 fori=1to10:next:next:gosub35:next
  43. 95 pokeu+21,15
  44. 98 print"tarvitaanko ohjeita? ";
  45. 99 gosub998
  46. 100 f$="[194][160][194][160][194][160][194][160][194]  ":g$="[171][195][219][195][219][195][219][195][179]  "
  47. 102 h$="[176][195][178][195][178][195][178][195][174]  ":i$="[173][195][177][195][177][195][177][195][189]  "
  48. 104 ifm$="e"then150
  49. 106 ifm$<>"k"then99
  50. 110 pokeu+21,0:print"[147]pelissa on tavoitteena saada enemman"
  51. 112 print"riveja kuin vastustaja.originaali pelilauta koostuu 16"
  52. 114 print"pystysuorasta tapista, joihin pelaajat":print"pudottelevat vuorotel";
  53. 116 print"len nappuloitaan,  enintaan 4 paallekkain."
  54. 118 print"rivit voivat muodostua vaaka- tai pysty-suoraan tai eri viistosuun";
  55. 120 print"tiin.":print"tassa versiossa pelilaudan kerrokset on jaettu 4 ";
  56. 122 print"tasoon seuraavasti:"
  57. 124 printtab(9)"1. sarake":printtab(9)"[194]":printtab(8)h$
  58. 126 print"1. rivi[195]"f$
  59. 128 forcd=1to3:printtab(8)g$:printtab(8)f$:next:printtab(8)i$;
  60. 130 print" <paina jotain>":gosub998
  61. 132 print"[147]taktikointisaanto:pelaaja saa pudottaa nappulansa samaan ";
  62. 134 print" tappiin kuin vastustaja enintaan kaksi  kertaa perakkain."
  63. 135 clr:gosub6000:goto153
  64. 150 printm$:clr:gosub6000:poke53269,0
  65. 153 forx=1to206:readxx:next
  66. 154 dimd(4,4,4),d1(4,4,4),ar(4,4,4)
  67. 155 forx=1to4:fory=1to4:forz=1to4
  68. 157 readlu:d1(x,y,z)=lu+1124:d(x,y,z)=lu+55396:next:next:next
  69. 160 f$="[194][160][194][160][194][160][194][160][194]  ":g$="[171][195][219][195][219][195][219][195][179]  "
  70. 162 h$="[176][195][178][195][178][195][178][195][174]  ":i$="[173][195][177][195][177][195][177][195][189]  "
  71. 170 print"[147]1. kerros  2. kerros"
  72. 173 gosub990:print"  3. kerros  4. kerros":gosub990
  73. 176 printtab(17)"ihminen   tietokone"
  74. 178 print"  t i l a n n e :    0   -    0"
  75. 179 dimk(4,4):forja=1to4:forje=1to4:k(ja,je)=1:next:next
  76. 180 ss$="siirtosi":ri$="  rivi:  [146][157][157]":sa$="sarake:  [146][157][157]":sn$="siirran"
  77. 181 tb$=""
  78. 182 ap$=tb$+"ala pursota! ":pl$=tb$+"pelottaako?  ":tk$=tb$+"taktikointia!"
  79. 185 y$="             "
  80. 190 va=16:e1=55:dimvr(16):forx=1to16:readvr(x):next
  81. 200 pe=10:print"";tab(25)ss$:printtab(25)ri$;
  82. 205 gosub998:w=val(m$):ifw<1orw>4then205
  83. 210 printw:printtab(25)sa$;
  84. 215 gosub998:z=val(m$):ifz<1orz>4then215
  85. 220 printz:e2=10*w+z:ifn2=e2andva>1then200
  86. 225 r=w:s=z:ifk(r,s)=5thenprint"";tab(25)ap$:gosub35:goto200
  87. 230 q=k(r,s):k(r,s)=k(r,s)+1:p(q,w,z)=10
  88. 235 ift1=2andn2<55thengosub980
  89. 240 ife2=e1thent1=t1+1:goto247
  90. 245 t1=0:goto250
  91. 247 ifva>1thenprint"";tab(25)tk$
  92. 250 ift2=2andva>1andq<4thenn1=e2:gosub975:print"";tab(25)tk$:goto270
  93. 265 n1=55
  94. 270 g=e2:ifq<4thengosub930:goto280
  95. 275 gosub960
  96. 280 gosub970:gosub3000
  97. 282 print""tb$;tab(25)"...mietin... ":forby=1to8:printtab(25)y$:next
  98. 285 pe=1
  99. 300 forha=1tova
  100. 310 q=int(vr(ha)/100):w=int((vr(ha)-q*100)/10):z=vr(ha)-q*100-w*10
  101. 315 kr=q:ri=w:sa=z:ar(q,w,z)=0:j=w+z:c=w*z:af=0
  102. 320 ifw*10+z=n1then440
  103. 323 ifq=3thenaf=1:ifp(1,w,z)+p(2,w,z)=20thenaf=2
  104. 326 ifq=1and((j=3orj=4orj=6orj=7)andw<>z)thenaf=3
  105. 329 ifq=4thenaf=4.5:ifc=1orc=16or(c=4andw<>2)thenaf=8
  106. 333 ifq=1and(c=1orc=16or(c=4andw<>2))thenaf=8
  107. 335 ifq=2andp(1,w,z)=1thenaf=.5
  108. 337 ar(q,w,z)=af
  109. 340 gosub700:gosub940:gosub710:gosub940:gosub720:gosub940:gosub730:gosub940
  110. 344 gosub740:gosub940:gosub750:gosub940:gosub760:gosub940:gosub770:gosub940
  111. 348 gosub780:gosub940:gosub790:gosub940:gosub800:gosub940:gosub810:gosub940
  112. 352 gosub820:gosub940
  113. 440 next
  114. 445 il=-99:forha=1tova
  115. 450 qq=int(vr(ha)/100):ww=int((vr(ha)-qq*100)/10):zz=vr(ha)-qq*100-ww*10
  116. 455 ifar(qq,ww,zz)>ilthenil=ar(qq,ww,zz):q=qq:w=ww:z=zz
  117. 460 next
  118. 461 print"":forkg=0to11:printtab(25)y$:next
  119. 462 printtab(25)sn$:printtab(25)ri$;w:printtab(25)sa$;z
  120. 465 e1=10*w+z:p(q,w,z)=1:k(w,z)=k(w,z)+1
  121. 470 ift2=2andn1<55thengosub980
  122. 475 ife1=e2thent2=t2+1:goto483
  123. 480 t2=0:goto485
  124. 483 ifva>1thenprint"";tab(25)tk$
  125. 485 ift1=2andva>1andq<4thenn2=e1:gosub975:print"";tab(25)tk$:goto495
  126. 490 n2=55
  127. 495 g=e1:ifq<4thengosub930:goto505
  128. 500 gosub960
  129. 505 gosub970:gosub3000
  130. 510 ifva>1then200
  131. 520 q=int(vr(1)/100):w=int((vr(1)-q*100)/10):z=vr(1)-q*100-w*10
  132. 525 ifva=1andp(4,w,z)=0then200
  133. 556 print"":forkg=0to11:printtab(25)y$:next
  134. 557 printtab(25)sn$:printtab(25)ri$;w:printtab(25)sa$;z
  135. 560 print"";tab(25)"< p a i n a[157][157][157][157][157][157][157][157][157][157][157]j o t a i n >":gosub998
  136. 565 print"[147]peli on paattynyt!"
  137. 570 print"viralliset lopputulokset:":print"  ihminen:"sc(10)" pistetta"
  138. 572 print"tietokone:"sc(1)" pistetta"
  139. 575 ifsc(1)>sc(10)thenprint"jalleen kerran on ihmisen noyrryttava":goto590
  140. 578 ifsc(10)>sc(1)thenprint"ollos ylpea, ihminen, tana hapean       paivana!"
  141. 580 ifsc(10)=sc(1)thenprint"olet uljaasti kamppaillut tasapelin."
  142. 585 end
  143. 590 print"ylivertaisen koneen edessa.":end
  144. 600 forx=1to4:fory=1to4:poked(y,w,z),1:next:gosub35
  145. 602 fory=1to4:poked(y,w,z),0:next:gosub35:next:return
  146. 610 forx=1to4:fory=1to4:poked(q,w,y),1:next:gosub35
  147. 612 fory=1to4:poked(q,w,y),0:next:gosub35:next:return
  148. 620 forx=1to4:fory=1to4:poked(q,y,z),1:next:gosub35
  149. 622 fory=1to4:poked(q,y,z),0:next:gosub35:next:return
  150. 630 forx=1to4:fory=1to4:poked(y,y,z),1:next:gosub35
  151. 632 fory=1to4:poked(y,y,z),0:next:gosub35:next:return
  152. 640 forx=1to4:fory=1to4:poked(y,w,y),1:next:gosub35
  153. 642 fory=1to4:poked(y,w,y),0:next:gosub35:next:return
  154. 650 forx=1to4:fory=1to4:poked(q,y,y),1:next:gosub35
  155. 652 fory=1to4:poked(q,y,y),0:next:gosub35:next:return
  156. 660 forx=1to4:fory=1to4:poked(y,y,y),1:next:gosub35
  157. 662 fory=1to4:poked(y,y,y),0:next:gosub35:next:return
  158. 670 forx=1to4:fory=1to4:poked(q,y,5-y),1:next:gosub35
  159. 672 fory=1to4:poked(q,y,5-y),0:next:gosub35:next:return
  160. 680 forx=1to4:fory=1to4:poked(y,5-y,z),1:next:gosub35
  161. 682 fory=1to4:poked(y,5-y,z),0:next:gosub35:next:return
  162. 690 forx=1to4:fory=1to4:poked(y,w,5-y),1:next:gosub35
  163. 692 fory=1to4:poked(y,w,5-y),0:next:gosub35:next:return
  164. 700 su=0
  165. 702 ifq<4thenforx=q+1to4:su=su+p(x,w,z):next
  166. 704 ifq>1thenfory=1toq-1:su=su+p(y,w,z):next
  167. 706 return
  168. 710 su=0
  169. 712 ifz<4thenforx=z+1to4:su=su+p(q,w,x):next
  170. 714 ifz>1thenfory=1toz-1:su=su+p(q,w,y):next
  171. 716 return
  172. 720 su=0
  173. 722 ifw<4thenforx=w+1to4:su=su+p(q,x,z):next
  174. 724 ifw>1thenfory=1tow-1:su=su+p(q,y,z):next
  175. 726 return
  176. 730 su=0:ifq<>wthenreturn
  177. 732 ifq<4thenforx=q+1to4:su=su+p(x,x,z):next
  178. 734 ifq>1thenfory=1toq-1:su=su+p(y,y,z):next
  179. 736 return
  180. 740 su=0:ifq<>zthenreturn
  181. 742 ifq<4thenforx=q+1to4:su=su+p(x,w,x):next
  182. 744 ifq>1thenfory=1toq-1:su=su+p(y,w,y):next
  183. 746 return
  184. 750 su=0:ifw<>zthenreturn
  185. 752 ifw<4thenforx=w+1to4:su=su+p(q,x,x):next
  186. 754 ifw>1thenfory=1tow-1:su=su+p(q,y,y):next
  187. 756 return
  188. 760 su=0:ifq<>zorq<>wthenreturn
  189. 762 ifq<4thenforx=q+1to4:su=su+p(x,x,x):next
  190. 764 ifq>1thenfory=1toq-1:su=su+p(y,y,y):next
  191. 766 return
  192. 770 su=0:ifw+z<>5thenreturn
  193. 772 ifw<4thenforx=w+1to4:su=su+p(q,x,5-x):next
  194. 774 ifw>1thenfory=1tow-1:su=su+p(q,y,5-y):next
  195. 776 return
  196. 780 su=0:ifq+w<>5thenreturn
  197. 782 ifq<4thenforx=q+1to4:su=su+p(x,5-x,z):next
  198. 784 ifq>1thenfory=1toq-1:su=su+p(y,5-y,z):next
  199. 786 return
  200. 790 su=0:ifq+z<>5thenreturn
  201. 792 ifq<4thenforx=q+1to4:su=su+p(x,w,5-x):next
  202. 794 ifq>1thenfory=1toq-1:su=su+p(y,w,5-y):next
  203. 796 return
  204. 800 su=0:ifq<>worq+z<>5thenreturn
  205. 802 ifw<4thenforx=w+1to4:su=su+p(x,x,5-x):next
  206. 804 ifq>1thenfory=1toq-1:su=su+p(y,y,5-y):next
  207. 806 return
  208. 810 su=0:ifw<>zorq+w<>5thenreturn
  209. 812 ifw<4thenforx=w+1to4:su=su+p(5-x,x,x):next
  210. 814 ifw>1thenfory=1tow-1:su=su+p(5-y,y,y):next
  211. 816 return
  212. 820 su=0:ifq<>zorq+w<>5thenreturn
  213. 822 ifq<4thenforx=q+1to4:su=su+p(x,5-x,x):next
  214. 824 ifq>1thenfory=1toq-1:su=su+p(y,5-y,y):next
  215. 826 return
  216. 900 forx=1to4:fory=1to4:poked(y,y,5-y),1:next:gosub35
  217. 902 fory=1to4:poked(y,y,5-y),0:next:gosub35:next:return
  218. 910 forx=1to4:fory=1to4:poked(5-y,y,y),1:next:gosub35
  219. 912 fory=1to4:poked(5-y,y,y),0:next:gosub35:next:return
  220. 920 forx=1to4:fory=1to4:poked(y,5-y,y),1:next:gosub35
  221. 922 fory=1to4:poked(y,5-y,y),0:next:gosub35:next:return
  222. 930 forx=1tova
  223. 932 ifvr(x)=100*q+gthenvr(x)=vr(x)+100
  224. 936 next:return
  225. 940 ifsu=1thenar(kr,ri,sa)=ar(kr,ri,sa)+5.5
  226. 942 ifsu=2thenar(kr,ri,sa)=ar(kr,ri,sa)+9
  227. 944 ifsu=20thenar(kr,ri,sa)=ar(kr,ri,sa)+.5
  228. 946 ifsu=30orsu=3thenar(kr,ri,sa)=ar(kr,ri,sa)+18
  229. 947 ifq=1andsu=20thenar(kr,ri,sa)=ar(kr,ri,sa)+6
  230. 948 return
  231. 960 forx=1tova
  232. 962 ifvr(x)=400+gthenfory=xtova-1:vr(y)=vr(y+1):next:x=va
  233. 964 next:va=va-1:return
  234. 970 poked(q,w,z),0:poked1(q,w,z),me(pe):return
  235. 975 poked(q+1,w,z),1:poked1(q+1,w,z),160:b1=q+1:b2=w:b3=z:return
  236. 980 poked1(b1,b2,b3),32:return
  237. 990 print"  "h$;h$:forcd=1to3:print"  "f$;f$:print"  "g$;g$:next:print"  "f$;f$
  238. 992 print"  "i$;i$:return
  239. 998 getm$:ifm$=""then998
  240. 999 return
  241. 3000 sc=0:gosub700:ifsu=3*pethengosub600:sc=sc+1
  242. 3010 gosub710:ifsu=3*pethengosub610:sc=sc+1
  243. 3020 gosub720:ifsu=3*pethengosub620:sc=sc+1
  244. 3030 gosub730:ifsu=3*pethengosub630:sc=sc+1
  245. 3040 gosub740:ifsu=3*pethengosub640:sc=sc+1
  246. 3050 gosub750:ifsu=3*pethengosub650:sc=sc+1
  247. 3060 gosub760:ifsu=3*pethengosub660:sc=sc+1
  248. 3070 gosub770:ifsu=3*pethengosub670:sc=sc+1
  249. 3080 gosub780:ifsu=3*pethengosub680:sc=sc+1
  250. 3090 gosub790:ifsu=3*pethengosub690:sc=sc+1
  251. 3100 gosub800:ifsu=3*pethengosub900:sc=sc+1
  252. 3110 gosub810:ifsu=3*pethengosub910:sc=sc+1
  253. 3120 gosub820:ifsu=3*pethengosub920:sc=sc+1
  254. 3125 ifsc>0andpe=1andva>1thenprint"";tab(25)pl$
  255. 3130 sc(pe)=sc(pe)+sc:print""tb$"";tab(30-pe)sc(pe):return
  256. 6000 print"kumpi merkki, [209] vai [214] ? ";
  257. 6010 gosub998
  258. 6020 ifm$<>"[209]"andm$<>"[214]"then6010
  259. 6030 printm$:me(10)=peek(1288):me(1)=167-me(10):gosub35
  260. 6040 print" (kone ei alennu aloittamaan)":return
  261. 8000 data255,142,195,158,135,174,75,190,44,
  262. 8010 data,255,,3,170,192,14,170,176,14,170,176,58,170,172,58,170,172
  263. 8020 data58,170,172,58,190,172,234,195,171,234,195,171,234,195,171
  264. 8025 data234,195,171,234,195,171,58,190,172,58,170,172,58,170,172,58,170,172
  265. 8030 data14,170,176,14,170,176,3,170,192,,255,
  266. 8035 data,255,,3,170,192,14,170,176,14,170,176,58,170,172,58,170,172
  267. 8040 data58,190,172,234,235,171,234,235,171,234,255,171,234,195,171
  268. 8045 data234,190,171,250,170,175,250,170,175,238,170,187,62,170,188
  269. 8050 data59,170,236,58,255,172,14,170,176,3,170,192,,255,,,,,,195,
  270. 8055 data15,130,240,58,130,172,58,130,172,234,195,171,234,195,171,250,190,175
  271. 8060 data250,170,175,239,170,251,234,255,171,234,170,171,234,170,171
  272. 8065 data234,170,171,234,170,171,58,170,172,58,170,172,15,170,240
  273. 8070 data,255,,,,,,,,60,40,40,60,40,40,40
  274. 8200 data23,25,27,29,103,105,107,109,183,185,187,189,263,265,267,269
  275. 8210 data34,36,38,40,114,116,118,120,194,196,198,200,274,276,278,280
  276. 8220 data463,465,467,469,543,545,547,549,623,625,627,629,703,705,707,709
  277. 8230 data474,476,478,480,554,556,558,560,634,636,638,640,714,716,718,720
  278. 8300 data111,112,113,114,121,122,123,124,131,132,133,134,141,142,143,144
  279.