home *** CD-ROM | disk | FTP | other *** search
/ 64'er Special 85 / 64er_Magazin_Sonderheft_85_19xx_Markt__Technik_de_Side_A.d64 / game (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  17KB  |  577 lines

  1. 100 dimb$(2,2,2),w$(2,2,2),vz$(2,2,2),y$(27),q(12),a1$(27),c2$(27),l1(43),h1(43)
  2. 110 dimt1(43),l2(16),h2(16),t2(16),l3(27),h3(27),t3(27)
  3. 120 lv=1:v=53248:si=54272:fl=si:fh=si+1:ws=si+4:as=si+5:hs=si+6:ls=si+24
  4. 130 gosub 4740
  5. 140 :
  6. 150 rem --- titelbild ---
  7. 160 printspc(12)"[158] matthias scherf "
  8. 170 printspc(17)"[153]presents"
  9. 180 printspc(10)"      [146]   [146]    [146]       [146]"
  10. 190 printspc(12)"  [146]     [146]    [146]   [146]"
  11. 200 printspc(12)"  [146]         [146]     [146]"
  12. 210 printspc(12)"  [146]     [146]    [146]   [146]"
  13. 220 printspc(12)"  [146]     [146]    [146]";
  14. 230 print"       [146]"
  15. 240 printspc(6)"      [146] [159]  [146]    [146] [158]";
  16. 250 print"      [146] [154]      [146]"
  17. 260 printspc(6)"  [146]     [159]  [146]    [146]  [158]";
  18. 270 print"  [146]   [146] [154]  [146]"
  19. 280 printspc(6)"  [146]     [159]  [146]    [146]  [158]";
  20. 290 print"    [146]  [154]  [146]"
  21. 300 printspc(6)"  [146]     [159]  [146]    [146]  [158]";
  22. 310 print"     [146] [154]    [146]"
  23. 320 printspc(6)"  [146]     [159]  [146]    [146]  [158]";
  24. 330 print"  [146]   [146] [154]  [146]"
  25. 340 printspc(6)"  [146]     [159]  [146]    [146]  [158]";
  26. 350 print"  [146]   [146] [154]  [146]"
  27. 360 printspc(6)"      [146] [159]      [146] [158]";
  28. 370 print"      [146] [154]      [146]"
  29. 380 print"[152] das grosse knobelspiel f^r kluge leute":gosub 3800
  30. 390 print"[145][156] f 1 [146]  [152]instructions     [156] f 3 [146]  [152]play game"
  31. 400 get a$:ifa$=""then400
  32. 410 ifasc(a$)=134then860
  33. 420 ifasc(a$)<>133then400
  34. 430 printchr$(147):fori=0to5:print:next
  35. 440 :
  36. 450 rem --- spielanleitung ---
  37. 460 printspc(4)"ziel dieses spiels ist es,einen":print
  38. 470 printspc(16)"[159]w^rfel":print
  39. 480 printspc(3)"aus [158]sechs teilen zusammenzusetzen:"
  40. 490 gosub 800
  41. 500 print"[154]1.schritt:w*hlen sie durch die tasten":print
  42. 510 print"1 - 6 ein teil aus.":print
  43. 520 print"anordnung:  1  2"
  44. 530 print"            3  4"
  45. 540 print"            5  6":print
  46. 550 print"[154]2.schritt:bestimmen sie die lage des":print
  47. 560 print"teils,indem sie zuerst eingeben,ob sie ":print
  48. 570 print"das teil [159]k[158]ippen oder [159]d[158]rehen wollen.":print
  49. 580 print"anschliessend dann die richtung:":print
  50. 590 print"[159]l[158]inks,[159]r[158]echts,[159]v[158]orne,[159]h[158]inten.":print
  51. 600 print"beispiel:[159] dl [158]= drehen nach links.":print
  52. 610 print"taste [159]e[158] beendet den vorgang!"
  53. 620 gosub800
  54. 630 print"[147][154]3.schritt:in diesem w^rfelkasten :":gosub1470:poke 646,5
  55. 640 fori=1to10:print:next
  56. 650 print"(sicht von oben)  wird das teil  einge-":print
  57. 660 print"tragen:je weiter unten sich das teil ":print
  58. 670 print"befindet,desto dunkler erscheint es.":print
  59. 680 print"bewegen sie das teil im w^rfel durch":print
  60. 690 print"taste b-fixieren sie es mit taste f!"
  61. 700 gosub800
  62. 710 print"[154]4.schritt:w*hlen sie das n*chste teil":print
  63. 720 print"aus..."
  64. 730 print:print"es gibt drei verschiedene schwierig-":print
  65. 740 print"keitsstufen!":print:print"und nun...":print
  66. 750 printspc(14)"[150]viel gl^ck!":print:print
  67. 760 print"p.s. sollten sie aus einer situation":print
  68. 770 printspc(5)"keinen ausweg mehr sehen,":print
  69. 780 printspc(5)"so dr^cken sie [159]q.":print:print:print
  70. 790 goto 390
  71. 800 printchr$(19):fori=0to20:print:next:printspc(18)"[150]press f1 to continue"
  72. 810 get a$:ifa$=""then810
  73. 820 ifasc(a$)<>133then810
  74. 830 printchr$(147);:return
  75. 840 :
  76. 850 rem --- levelauswahl ---
  77. 860 printchr$(147)
  78. 870 on lv gosub4000,4190,4340
  79. 880 goto1090
  80. 890 :
  81. 900 rem --- kommentar spiel verloren ---
  82. 910 printchr$(147)
  83. 920 tr(lv)=tr(lv)+1
  84. 930 print"tja,tut mir leid-ist wohl doch nicht so":print
  85. 940 print"einfach wie es aussieht?!":print
  86. 950 print"aber es ist ja erst ihr";tr(lv);"[157].ter versuch.":print:print
  87. 960 print"also nicht verzagen!!-auf ein neues!!":
  88. 970 gosub 800:goto870
  89. 980 :
  90. 990 rem --- kommentar spiel gewonnen ---
  91. 1000 printchr$(147):tr(lv)=tr(lv)+1
  92. 1010 print"herzlichen gl^ckwunsch!":print
  93. 1020 print"sie haben den w^rfel im";tr(lv);"[157].ten":print
  94. 1030 print"versuch geschafft!":print
  95. 1040 iflv=3then gosub 800:goto 4540
  96. 1050 print"und hier - der n*chste kandidat:..."
  97. 1060 gosub 800:lv=lv+1:goto870
  98. 1070 :
  99. 1080 rem --- zeichnen der teile ---
  100. 1090 poke53280,0:poke53281,0:printchr$(147)
  101. 1100 gosub1470:poke 646,5
  102. 1110 for an=0to5:h=0
  103. 1120 fore=0to2:fora=0to2:forr=1to3
  104. 1130 h=h+1:d$=mid$(a$(an),h,1)
  105. 1140 ifd$="1"thengosub1530
  106. 1150 next:next:next:next
  107. 1160 :
  108. 1170 :
  109. 1180 rem --- auswahl eines teils ---
  110. 1190 print"teil nummer 1-6 : $"
  111. 1200 get tn$:iftn$=""then 1200
  112. 1210 iftn$="q"thenz4=0:goto3140
  113. 1220 tn=val(tn$):iftn<1ortn>6then1190
  114. 1230 fori=0tozr:ifiv(i)=tnthen1190
  115. 1240 next:an=tn-1:poke 1042,asc(tn$):gosub1930
  116. 1250 :
  117. 1260 rem --- teil drehen ---
  118. 1270 k(an)=1788:h=0
  119. 1280 for e=0to2:fora=0to2:forr=1to3
  120. 1290 h=h+1:d$=mid$(a$(an),h,1)
  121. 1300 ifd$="1"then gosub1530
  122. 1310 next:next:next:gosub1570
  123. 1320 :
  124. 1330 print"drehrichtung : $    ":b$=""
  125. 1340 get dr$:ifdr$=""then 1340
  126. 1350 ifdr$="e"thenpoke1039,5:gosub2000:goto2080
  127. 1360 ifdr$="q"thenz4=0:goto3140
  128. 1370 dr=asc(dr$)
  129. 1380 if dr=20then1330
  130. 1390 if dr>90ordr<65then1340
  131. 1400 b$=b$+dr$:print "";spc(14+len(b$))dr$;
  132. 1410 iflen(b$)=1thenprint"$":goto1340
  133. 1420 forb=1to6:ifbf$(b)<>b$thennext:goto 1330
  134. 1430 on b gosub1660,1690,1720,1750,1770,1810
  135. 1440 goto 1280
  136. 1450 :
  137. 1460 rem --- zeichnen des wuerfelkastens ---
  138. 1470 print"[155]"
  139. 1480 fori=0to5:poke1117+i,36:poke55389+i,15:poke1397+i,35:poke 55669+i,15
  140. 1490 poke1156+40*i,38:poke 55428+40*i,15:poke1163+40*i,37:poke55435+40*i,15:next
  141. 1500 return
  142. 1510 :
  143. 1520 rem --- zeichenen der elementarwuerfel ---
  144. 1530 po=k(an)+2*r+39*a-80*e:sys(49152)po
  145. 1540 return
  146. 1550 :
  147. 1560 rem --- teile-daten in 3-d string zerlegen ---
  148. 1570 h=0
  149. 1580 for g=0to2:fori=0to2:fort=0to2
  150. 1590 h=h+1:w$(g,i,t)=mid$(a$(an),h,1):b$(g,i,t)=w$(g,i,t)
  151. 1600 next:next:next
  152. 1610 h=0
  153. 1620 return
  154. 1630 :
  155. 1640 rem --- drehen des teils nach... ---
  156. 1650 rem +++ vorne (k) +++
  157. 1660 forg=0to2:fori=0to2:a=2-i:fort=0to2
  158. 1670 b$(a,g,t)=w$(g,i,t):next:next:next:a$(an)="":goto1840
  159. 1680 rem +++ rechts (d) +++
  160. 1690 forg=0to2:fori=0to2:a=2-i:fort=0to2
  161. 1700 b$(g,t,a)=w$(g,i,t):nextt:nexti:nextg:a$(an)="":goto1840
  162. 1710 rem +++ rechts (k) +++
  163. 1720 forg=0to2:fori=0to2:fort=0to2:z=2-t
  164. 1730 b$(z,i,g)=w$(g,i,t):next:next:next:a$(an)="":goto 1840
  165. 1740 rem +++ hinten (k) +++
  166. 1750 forg=0to2:a=2-g:fori=0to2:fort=0to2
  167. 1760 b$(i,a,t)=w$(g,i,t):next:next:next:a$(an)="":goto1840
  168. 1770 rem +++ links (d)+++
  169. 1780 forg=0to2:fori=0to2:fort=0to2:z=2-t
  170. 1790 b$(g,z,i)=w$(g,i,t):nextt:nexti:nextg:a$(an)="":goto1840
  171. 1800 rem +++ links (k) +++
  172. 1810 forg=0to2:a=2-g:fori=0to2:fort=0to2:z=2-t
  173. 1820 b$(t,i,a)=w$(g,i,t):next:next:next:a$(an)="":goto 1840
  174. 1830 :
  175. 1840 forg=0to2:fori=0to2:fort=0to2:a$(an)=a$(an)+b$(g,i,t):next:next:next
  176. 1850 :
  177. 1860 rem --- loeschroutine 1 ---
  178. 1870 fori=0to8:fort=0to9
  179. 1880 pokek(an)-200+i+40*t,32
  180. 1890 next:next
  181. 1900 return
  182. 1910 :
  183. 1920 rem --- loeschroutine 2 ---
  184. 1930 fori=0to7:fort=0to8
  185. 1940 pokek(an)-3*40+t+40*i,32
  186. 1950 next:next:pokek(an)+4,tn+48:poke54272+k(an)+4,1
  187. 1960 zr=zr+1:iv(zr)=tn
  188. 1970 return
  189. 1980 :
  190. 1990 rem --- zerlegen in 3-d string ---
  191. 2000 h=0
  192. 2010 for g=0to2:fori=0to2:fort=0to2
  193. 2020 h=h+1:b$(g,i,t)=mid$(a$(an),h,1)
  194. 2030 next:next:next
  195. 2040 h=0:print"bitte warten sie einen moment!"
  196. 2050 return
  197. 2060 :
  198. 2070 rem --- teil verschiebbar nach...?  ---
  199. 2080 :
  200. 2090 rem +++ r e c h t s +++
  201. 2100 for a=2to1step-1:c=c+1:for i=0to2:fort=0to2
  202. 2110 ifb$(i,t,a)="0"thennext:next:q(c)=1:next:goto2140
  203. 2120 ifc/2<>int(c/2)thenc=c+1
  204. 2130 rem +++ l i n k s +++
  205. 2140 for a=0to1:c=c+1:fori=0to2:fort=0to2
  206. 2150 ifb$(i,t,a)="0"thennext:next:q(c)=1:next:goto2180
  207. 2160 ifc/2<>int(c/2)thenc=c+1
  208. 2170 rem +++ v o r n e +++
  209. 2180 for a=2to1step-1:c=c+1:for i=0to2:fort=0to2
  210. 2190 ifb$(i,a,t)="0"thennext:next:q(c)=1:next:goto2220
  211. 2200 ifc/2<>int(c/2)thenc=c+1
  212. 2210 rem +++ h i n t e n +++
  213. 2220 for a=0to1:c=c+1:fori=0to2:fort=0to2
  214. 2230 ifb$(i,a,t)="0"thennext:next:q(c)=1:next:goto2260
  215. 2240 ifc/2<>int(c/2)thenc=c+1
  216. 2250 rem +++ o b e n +++
  217. 2260 for a=2to1step-1:c=c+1:for i=0to2:fort=0to2
  218. 2270 ifb$(a,i,t)="0"thennext:next:q(c)=1:next:goto2300
  219. 2280 ifc/2<>int(c/2)thenc=c+1
  220. 2290 rem +++ u n t e n +++
  221. 2300 for a=0to1:c=c+1:fori=0to2:fort=0to2
  222. 2310 ifb$(a,i,t)="0"thennext:next:q(c)=1:next:goto2330
  223. 2320 ifc/2<>int(c/2)thenc=c+1
  224. 2330 :
  225. 2340 rem --- ermitteln aller 'dualstrings',der neuen teile, ---
  226. 2350 rem ----------- die die verschiebungen ergaben -----------
  227. 2360 :
  228. 2370 fort=1to12:ifq(t)=1thenrz=rz+1:ve(rz)=t
  229. 2380 nextt:y$(0)=a$(an):zi=0:goto3030
  230. 2390 ifve(zi)>4andos=0thenov=zi-1:os=1
  231. 2400 ifok<>0then2420
  232. 2410 ifve(zi)>8thenop=ov+z3:ok=1
  233. 2420 onve(zi)goto 2450,2500,2550,2600,2650,2700,2750,2800,2860,2900,2940,2980
  234. 2430 :
  235. 2440 rem +++ rechts (1) +++
  236. 2450 for a=0to2:fore=0to2:fort=0to1
  237. 2460 vz$(a,e,t+1)=b$(a,e,t)
  238. 2470 next:next:next:goto3020
  239. 2480 :
  240. 2490 rem +++ rechts (2) +++
  241. 2500 for a=0to2:fore=0to2
  242. 2510 vz$(a,e,2)=b$(a,e,0)
  243. 2520 next:next:goto3020
  244. 2530 :
  245. 2540 rem +++ links (1) +++
  246. 2550 for a=0to2:fore=0to2:fort=1to2
  247. 2560 vz$(a,e,t-1)=b$(a,e,t)
  248. 2570 next:next:next:goto3020
  249. 2580 :
  250. 2590 rem +++ links (2) +++
  251. 2600 for a=0to2:fore=0to2
  252. 2610 vz$(a,e,0)=b$(a,e,2)
  253. 2620 next:next:goto3020
  254. 2630 :
  255. 2640 rem +++ vorne (1) +++
  256. 2650 fora=0toov:z3=z3+1
  257. 2660 y$(ov+z3)=right$(y$(a),3)+left$(y$(a),24)
  258. 2670 nexta:goto3030
  259. 2680 :
  260. 2690 rem +++ vorne (2) +++
  261. 2700 fora=0toov:z3=z3+1
  262. 2710 y$(ov+z3)=right$(y$(a),6)+left$(y$(a),21)
  263. 2720 next:goto3030
  264. 2730 :
  265. 2740 rem +++ hinten (1) +++
  266. 2750 fora=0toov:z3=z3+1
  267. 2760 y$(ov+z3)=right$(y$(a),24)+left$(y$(a),3)
  268. 2770 nexta:goto3030
  269. 2780 :
  270. 2790 rem +++ hinten (2) +++
  271. 2800 fora=0toov:z3=z3+1
  272. 2810 y$(ov+z3)=right$(y$(a),21)+left$(y$(a),6)
  273. 2820 next:goto3030
  274. 2830 nexta
  275. 2840 :
  276. 2850 rem +++ oben (1) +++
  277. 2860 fort=0toop:z2=z2+1
  278. 2870 y$(op+z2)="000000000"+left$(y$(t),18):next:goto3040
  279. 2880 :
  280. 2890 rem +++ oben (2) +++
  281. 2900 fort=0toop:z2=z2+1
  282. 2910 y$(op+z2)="000000000000000000"+left$(y$(t),9):next:goto3040
  283. 2920 :
  284. 2930 rem +++ unten (1) +++
  285. 2940 fort=0toop:z2=z2+1
  286. 2950 y$(op+z2)=right$(y$(t),18)+"000000000":next:goto3040
  287. 2960 :
  288. 2970 rem +++ unten (2) +++
  289. 2980 fort=0toop:z2=z2+1
  290. 2990 y$(op+z2)=right$(y$(t),9)+"000000000000000000":next:goto3040
  291. 3000 :
  292. 3010 rem +++ rueckfuehrung auf 1-d string +++
  293. 3020 fora=0to2:fore=0to2:forr=0to2:y$(zi)=y$(zi)+vz$(a,e,r):next:next:next
  294. 3030 fora=0to2:fore=0to2:forr=0to2:vz$(a,e,r)="0":next:next:next
  295. 3040 :
  296. 3050 zi=zi+1:ifzi<=rzthen2390
  297. 3060 sl=ov+z2+z3:if sl=0 then sl=rz
  298. 3070 :
  299. 3080 rem --- passt das teil in den wuerfelkasten ? ---
  300. 3090 fori=0tosl
  301. 3100 fort=1to27
  302. 3110 ifmid$(y$(i),t,1)="1"andmid$(w$,t,1)="1"then3130
  303. 3120 next:z4=z4+1:a1$(z4)=y$(i)
  304. 3130 next i
  305. 3140 if z4<>0 then 3200
  306. 3150 gosub 3510
  307. 3160 print"das war wohl nichts...";:gosub 3860
  308. 3170 print"press any key!":goto 3750
  309. 3180 :
  310. 3190 rem --- neue gesamtwuerfeldaten erstellen ---
  311. 3200 fori=1toz4:c2$(i)=""
  312. 3210 fort=1to27
  313. 3220 ifmid$(a1$(i),t,1)="0"andmid$(w$,t,1)="0"thenc2$(i)=c2$(i)+"0":goto3240
  314. 3230 c2$(i)=c2$(i)+"1"
  315. 3240 nextt:nexti:g=0
  316. 3250 :
  317. 3260 rem --- teil in den kasten eintragen ---
  318. 3270 h=0:g=1:gosub 3600
  319. 3280 fora=0to2:fore=0to2:forr=0to2:h=h+1
  320. 3290 d$=mid$(c2$(g),h,1)
  321. 3300 ifd$="1"thengosub3660
  322. 3310 next:next:next
  323. 3320 :
  324. 3330 rem --- abfrage der position ---
  325. 3340 print"b = bewegen      f = fixieren!"
  326. 3350 get ge$:ifge$=""then3350
  327. 3360 ifge$="f"then w$=c2$(g):gosub1870:goto3440
  328. 3370 ifge$="b"then 3400
  329. 3380 ifge$="q"then z4=0:goto3140
  330. 3390 goto 3350
  331. 3400 g=g+1:ifg>z4theng=1
  332. 3410 gosub3600:h=0:goto3280
  333. 3420 :
  334. 3430 rem --- inhalt des wuerfelkastens zeichnen ---
  335. 3440 k(an)=1304:z=0:gosub 1870
  336. 3450 for e=0to2:fora=0to2:forr=1to3:z=z+1
  337. 3460 d$=mid$(w$,z,1)
  338. 3470 ifd$="1"thengosub1530
  339. 3480 next:next:next
  340. 3490 :
  341. 3500 rem --- loeschroutine 3 ---
  342. 3510 fori=0to32:poke1024+i,32:next
  343. 3520 :
  344. 3530 rem --- loeschen der variablen ---
  345. 3540 fori=0to27:y$(i)="":a1$(i)="":c2$(i)="":next:fori=0to12:q(i)=0:next
  346. 3550 c=0:rz=0:ov=0:ok=0:os=0:op=0:z2=0:z3=0:zi=0:sl=0:z=0
  347. 3560 if z4=0 then return
  348. 3570 z4=0:goto3730
  349. 3580 :
  350. 3590 rem --- loeschroutine 4 ---
  351. 3600 fori=0to5:fort=0to5
  352. 3610 poke1157+t+40*i,32
  353. 3620 next:next
  354. 3630 return
  355. 3640 :
  356. 3650 rem --- zeichnen des teils in den wuerfelkasten ---
  357. 3660 pv=1157+2*r+80*e
  358. 3670 fori=0to1:fort=0to1
  359. 3680 pokepv+i+40*t,224-a*64
  360. 3690 next:next
  361. 3700 return
  362. 3710 :
  363. 3720 rem --- wuerfel fertig ? ---
  364. 3730 ifzr<6then goto1190
  365. 3740 print"herzlichen gl^ckwunsch! ";:gosub 3920:print"press any key!"
  366. 3750 get ge$:ifge$=""then3750
  367. 3760 ifzr=6thenzr=0:goto 1000
  368. 3770 zr=0:goto 910
  369. 3780 :
  370. 3790 rem --- titelmelodie ---
  371. 3800 poke ls,15:poke as,0:poke hs,15*16
  372. 3810 fori=0to43:poke fh,l1(i):poke fl,h1(i):poke ws,17
  373. 3820 for t=1tot1(i)*(1/16)*1500:next:for t=1to2:poke ws,0:next:poke ws,17
  374. 3830 next:poke ws,0:poke as,0:poke hs,0:return
  375. 3840 :
  376. 3850 rem --- melodie wuerfel nicht geschafft ---
  377. 3860 poke ls,15:poke as,0:poke hs,15*16
  378. 3870 fori=0to15:poke fh,l2(i):poke fl,h2(i):poke ws,17
  379. 3880 for t=1tot2(i)*(1/8)*1300:next:for t=1to2:poke ws,0:next:poke ws,17
  380. 3890 next:poke ws,0:poke as,0:poke hs,0:return
  381. 3900 :
  382. 3910 rem --- melodie wuerfel geschafft ---
  383. 3920 poke ls,15:poke as,0:poke hs,15*16
  384. 3930 fori=0to26:poke fh,l3(i):poke fl,h3(i):poke ws,17
  385. 3940 for t=1tot3(i)*(1/8)*1000:next:for t=1to2:poke ws,0:next:poke ws,17
  386. 3950 next:poke ws,0:poke as,0:poke hs,0:return
  387. 3960 :
  388. 3970 rem --- daten fuer die wuerfelteile ---
  389. 3980 :
  390. 3990 rem --- level 1... ---
  391. 4000 a$(0)="111011001000000000000000000"
  392. 4010 a$(1)="011010000001000000000000000"
  393. 4020 a$(2)="110110000011000000000000000"
  394. 4030 a$(3)="011000000000000000000000000"
  395. 4040 a$(4)="111100000001000000000000000"
  396. 4050 a$(5)="111000000001000000000000000"
  397. 4060 :
  398. 4070 rem --- daten fuer die farben ---
  399. 4080 f(1)=1:f(2)=1:f(3)=10:f(4)=10:f(5)=2:f(6)=10:f(7)=10:f(8)=2
  400. 4090 fori=0to8:poke870+i,f(i):next
  401. 4100 :
  402. 4110 rem --- extended colour-modus ---
  403. 4120 gosub 4490
  404. 4130 pokev+34,1
  405. 4140 pokev+35,10
  406. 4150 pokev+36,2
  407. 4160 return
  408. 4170 :
  409. 4180 rem --- level 2... ---
  410. 4190 a$(0)="001011000001000000000000000"
  411. 4200 a$(1)="111001000000000000000000000"
  412. 4210 a$(2)="010011000110000000000000000"
  413. 4220 a$(3)="011011000010000000000000000"
  414. 4230 a$(4)="011010000001000000000000000"
  415. 4240 a$(5)="001111000001000000000000000"
  416. 4250 f(1)=1:f(2)=1:f(3)=13:f(4)=13:f(5)=5:f(6)=13:f(7)=13:f(8)=5
  417. 4260 fori=0to8:poke870+i,f(i):next
  418. 4270 gosub 4490
  419. 4280 pokev+35,13
  420. 4290 pokev+36,5
  421. 4300 pokev+34,1
  422. 4310 return
  423. 4320 :
  424. 4330 rem --- level 3 ---
  425. 4340 a$(0)="001011000001000000000000000"
  426. 4350 a$(1)="010011000110000000000000000"
  427. 4360 a$(2)="001111000001000000000000000"
  428. 4370 a$(3)="001011000001000000000000000"
  429. 4380 a$(4)="111010000001000000000000000"
  430. 4390 a$(5)="111100000000000000000000000"
  431. 4400 f(1)=1:f(2)=1:f(3)=14:f(4)=14:f(5)=6:f(6)=14:f(7)=14:f(8)=6
  432. 4410 fori=0to8:poke870+i,f(i):next
  433. 4420 gosub 4490
  434. 4430 pokev+34,1
  435. 4440 pokev+35,14
  436. 4450 pokev+36,6
  437. 4460 return
  438. 4470 :
  439. 4480 rem --- koordinatendaten ---
  440. 4490 pokev+17,peek(v+17)or4*16
  441. 4500 k(0)=1205:k(1)=1214:k(2)=1525:k(3)=1534:k(4)=1845:k(5)=1854:k(6)=1304
  442. 4510 w$="000000000000000000000000000":return
  443. 4520 :
  444. 4530 rem --- eine urkunde fuer den sieger... ---
  445. 4540 print chr$(147)
  446. 4550 print"geben sie ihren namen ein:":print
  447. 4560 input n$
  448. 4570 print chr$(147)
  449. 4580 print spc(10)"u r k u n d e"
  450. 4590 print spc(10)"#############":print
  451. 4600 print"der/die knobler/in [158]";n$:print:poke 646,5
  452. 4610 print"hat es geschafft,alle drei w^rfel ":print
  453. 4620 print"zusammenzusetzen.":print:print
  454. 4630 printn$;" ben\tigte f^r den":print
  455. 4640 poke646,10:print"ersten w^rfel  ";tr(1);"versuch(e)":print
  456. 4650 poke646,13:print"zweiten w^rfel ";tr(2);"versuch(e)":print
  457. 4660 poke646,14:print"dritten w^rfel ";tr(3);"versuch(e)":print:gosub 3800
  458. 4670 fori=0to3:print:next:poke 646,4
  459. 4680 print"want to play again (y/n) ?"
  460. 4690 get a$:ifa$=""then4690
  461. 4700 ifasc(a$)=89then poke v+17,27:run
  462. 4710 print chr$(147):poke 53280,14:poke 53281,6:poke 646,14:end
  463. 4720 :
  464. 4730 rem --- maschinenprogramm 1 (zeichensatzverschiebung) ---
  465. 4740 fori=0to71:readq:poke4300+i,q:next
  466. 4750 data173,14,220,41,254,141,14,220,165,1,41,251,133,1,169,8,133,34,133
  467. 4760 data36,169,216,133,35,169,8,133,37,162,8,160,0,177,34,145,36,136,208
  468. 4770 data249,230,35,230,37,202,208,240,165,1,9,4,133,1,173,24,208,41,240,9
  469. 4780 data2,141,24,208,173,14,220,9,1,141,14,220,96,255
  470. 4790 :
  471. 4800 sys4300
  472. 4810 :
  473. 4820 :
  474. 4830 rem --- aendern einiger zeichen... ---
  475. 4840 fori=0to5:readx:fort=0to7:readz:poke x+t,z:next:next
  476. 4850 fori=0to7:poke2328+i,peek(2840+i):next
  477. 4860 fori=0to7:poke2336+i,peek(2848+i):next
  478. 4870 fori=0to7:poke2344+i,192:next
  479. 4880 fori=0to7:poke2352+i,3:next
  480. 4890 fori=1to26:fort=0to7:readz:poke2048+t+8*i,z:next:next
  481. 4900 fori=1to10:fort=0to7:readz:poke2424+t+8*i,z:next:next
  482. 4910 :
  483. 4920 rem --- lesen der melodie-daten ---
  484. 4930 fori=0to43:readl1(i),h1(i),t1(i):next
  485. 4940 fori=0to15:readl2(i),h2(i),t2(i):next
  486. 4950 fori=0to26:readl3(i),h3(i),t3(i):next
  487. 4960 :
  488. 4970 rem --- maschinenprogramm 2 (elementarwuerfel zeicnen) ---
  489. 4980 fori=49152to49480:readx:pokei,x:next
  490. 4990 :
  491. 5000 rem --- einlesen von poke-daten fuer den wuerfel ---
  492. 5010 fori=860to868:readx:pokei,x:next
  493. 5020 :
  494. 5030 rem --- einlesen aller moeglichen dreh-u. kippbefehle ---
  495. 5040 fori=1to6:read bf$(i):next:return
  496. 5050 :
  497. 5060 rem --- zeichendaten ---
  498. 5070 data2048,255,254,252,248,240,224,192,128
  499. 5080 data2272,198,56,198,230,230,230,60,0
  500. 5090 data2384,198,56,108,254,230,230,230,0
  501. 5100 data2288,198,0,230,230,230,230,254,0
  502. 5110 data2312,120,120,120,120,120,0,120,0
  503. 5120 data2552,254,206,14,60,48,0,56,0
  504. 5130 data126,126,102,230,254,230,230,0:rem a
  505. 5140 data252,236,236,254,230,230,254,0:rem b
  506. 5150 data254,206,206,192,198,198,254,0:rem c
  507. 5160 data252,230,230,230,230,230,252,0:rem d
  508. 5170 data254,192,192,254,224,224,254,0:rem e
  509. 5180 data254,224,224,126,96,96,96,0   :rem f
  510. 5190 data254,238,224,238,230,230,254,0:rem g
  511. 5200 data198,198,198,254,230,230,230,0:rem h
  512. 5210 data24,24,24,24,28,28,28,0       :rem i
  513. 5220 data252,12,12,12,206,206,254,0   :rem j
  514. 5230 data102,108,120,112,248,236,230,0:rem k
  515. 5240 data96,96,96,224,224,224,254,0   :rem l
  516. 5250 data198,238,214,206,206,206,206,0:rem m
  517. 5260 data230,246,246,254,222,206,206,0:rem n
  518. 5270 data254,198,198,206,206,206,254,0:rem o
  519. 5280 data254,198,198,254,224,224,224,0:rem p
  520. 5290 data254,198,198,206,206,206,254,7:rem q
  521. 5300 data252,204,204,254,206,206,206,0:rem r
  522. 5310 data254,198,192,254,6,230,254,0  :rem s
  523. 5320 data254,48,48,56,56,56,56,0      :rem t
  524. 5330 data198,198,198,206,206,206,254,0:rem u
  525. 5340 data206,206,206,206,252,120,48,0 :rem v
  526. 5350 data206,206,206,206,214,238,198,0:rem w
  527. 5360 data198,238,124,16,124,238,198,0 :rem x
  528. 5370 data206,206,206,56,56,56,56,0    :rem y
  529. 5380 data254,14,14,48,48,240,254,0    :rem z
  530. 5390 data126,102,102,230,230,230,254,0:rem 0
  531. 5400 data120,24,24,56,56,56,56,0      :rem 1
  532. 5410 data254,198,6,254,224,224,254,0  :rem 2
  533. 5420 data254,198,6,30,6,198,254,0     :rem 3
  534. 5430 data192,192,204,204,254,28,28,0  :rem 4
  535. 5440 data254,192,192,254,14,206,254,0 :rem 5
  536. 5450 data252,204,192,254,230,230,254,0:rem 6
  537. 5460 data254,198,12,24,56,56,56,0     :rem 7
  538. 5470 data126,102,102,254,230,230,254,0:rem 8
  539. 5480 data254,230,230,254,14,28,56,0   :rem 9
  540. 5490 :
  541. 5500 rem --- melodiedaten ---
  542. 5510 data52,39,1,46,118,1,43,219,2,43,219,1,39,18,1,34,207,2,34,207,1,32,219
  543. 5520 data1,29,69,2,27,160,2,29,69,2,46,118,1,43,219,1,39,18,2,39,18,1
  544. 5530 data34,207,1,32,219,2,32,219,1,29,69,1,26,20,2,24,157,2,26,20,2,43,219,1
  545. 5540 data39,18,1,34,207,2,34,207,1,32,219,1,29,69,2,29,69,1,26,20,1
  546. 5550 data23,59,2,21,237,2,23,59,2,39,18,1,34,207,1,32,219,1,34,207,1,39,18,1
  547. 5560 data43,219,1,46,118,1,52,39,1,58,138,1,65,181,1,69,157,8
  548. 5570 data15,129,4,19,137,3,15,129,1,23,59,8,17,103,4,20,178,3,17,103,1,26,20,8
  549. 5580 data20,178,4,26,20,3,20,178,1,31,3,4,20,178,4,23,59,4,23,59,4,15,129,5
  550. 5590 data39,18,1,32,219,1,26,20,2,26,20,2,26,20,2,29,69,2,34,207,2,34,207,1
  551. 5600 data29,69,1,24,157,2,24,157,2,24,157,2,26,20,2,39,18,2,39,18,1,32,219,1
  552. 5610 data26,20,2,26,20,2,26,20,2,26,69,2,34,207,2,34,207,1,29,69,1,24,157,2
  553. 5620 data24,157,2,24,157,2,26,20,4
  554. 5630 :
  555. 5640 rem --- daten fuer maschinenspracheprogramm 2 ---
  556. 5650 data32,138,173,32,247,183,164,20,140,232,3,164,21,140,233,3,160,0,166
  557. 5660 data20,224,0,240,90,202,134,20,200,192,4,240,102,32,142,192,76,27,192
  558. 5670 data200,32,68,192,200,192,7,240,91,32,142,192,76,42,192,200,32,68,192
  559. 5680 data200,192,10,240,98,32,142,192,76,57,192,166,20,24,138,105,38,170,134
  560. 5690 data20,176,47,32,183,192,152,72,166,21,224,216,176,64,185,69,3,160,0,145
  561. 5700 data20,104,168,96,162,0,134,20,166,21,232,134,21,166,20,76,149,192,166
  562. 5710 data21,202,134,21,162,255,134,20,76,27,192,166,21,232,134,21,76,79,192
  563. 5720 data136,76,38,192,136,76,53,192,166,20,224,255,232,240,207,134,20,76,79
  564. 5730 data192,185,81,3,76,93,192,166,21,224,216,144,1,96,24,173,233,3,105,212
  565. 5740 data133,21,173,232,3,133,20,76,16,192,166,21,224,216,176,39,185,91,3,153
  566. 5750 data69,3,185,101,3,153,81,3,152,170,160,0,177,20,72,138,168,104,170,224
  567. 5760 data192,240,13,224,64,240,31,224,224,240,49,224,160,240,62,96,173,103
  568. 5770 data3,153,81,3,185,91,3,170,224,0,208,241,169,224,153,69,3,76,228,192
  569. 5780 data185,91,3,170,224,0,208,225,169,64,153,69,3,173,110,3,153,81,3,76,228
  570. 5790 data192,185,91,3,170,224,64,208,203,173,110,3,153,81,3,76,228,192,185,91
  571. 5800 data3,170,224,64,208,10,173,105,3,153,81,3,185,91,3,170,224,0,208,172
  572. 5810 data169,128,153,69,3,173,110,3,153,81,3,76,228,192,76,231,192
  573. 5820 :
  574. 5830 data64,96,192,160,160,224,160,160,0
  575. 5840 :
  576. 5850 datakv,dr,kr,kh,dl,kl
  577.