home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh1x / sh17a.d64 / game (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  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.