home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / 87xx / 8711.d64 / b-mancala (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  7KB  |  297 lines

  1. 80 POKE 53280,0
  2. 90 POKE 53281,0
  3. 100 PRINT"[147]":PRINT"[158]"
  4. 102 POKE 211,0:POKE 214,5:SYS 58732
  5. 104 PRINT"        [213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]"
  6. 110 PRINT"        [221]  [213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]  [221]"
  7. 120 PRINT"        [221]  [221] M A N C A L A [221]  [221]"
  8. 130 PRINT"        [221]  [202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203]  [221]"
  9. 150 PRINT"        [171][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][179]"
  10. 152 PRINT"        [221] PROGRAMMIERT VON :  [221]"
  11. 160 PRINT"        [221] BENNO     B O S E N [221]"
  12. 180 PRINT"        [221] LENAUSTRASSE 10     [221]"
  13. 190 PRINT"        [221] 5216 NIEDERKASSEL 2 [221]"
  14. 200 PRINT"        [221] TELEFON  02208/5869 [221]"
  15. 210 PRINT"        [202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203]"
  16. 970 :
  17. 980 REM @ S1024
  18. 990 :
  19. 1000 REM NUM. VARIABLEN
  20. 1010 B=0:BA=0:BS=0:EA=0:EB=0:EE=0:F=0
  21. 1020 G=0:GZ=0:H=0:I=0:J=0:L=0:M=0:N=0
  22. 1025 K=30000
  23. 1030 Q=0:R=0:S=0:T=0:T0=0:KA=0:KD=0
  24. 1040 U=0:W=0:Z=0:ZE=0:ZG=0:ZX=0
  25. 1050 :
  26. 1100 REM STRINGS
  27. 1110 G$="":R$=""
  28. 1130 D$="[221]    [221]    [221]    [221]    [221]    [221]    [221]"
  29. 1150 B$="                                       "
  30. 1200 :
  31. 1210 REM ARRAYS
  32. 1220 DIM A%(2,6,15),N%(10)
  33. 1970 GOTO 5900
  34. 1980 :
  35. 1990 REM SETZEN
  36. 2000 Z=0
  37. 2010 U=0:B=A%(L,M,N):A%(L,M,N)=0
  38. 2020 IF R=0 AND N=6 THEN A%(L,M,13)=A%(L,M,13)+1:B=B-1
  39. 2030 IF R=6 AND N=12 THEN A%(L,M,14)=A%(L,M,14)+1:B=B-1
  40. 2040 IF B=0 THEN 2100
  41. 2050 IF N=6 OR N=12 THEN U=U+1
  42. 2060 IF N=12 THEN N=0
  43. 2070 N=N+1:A%(L,M,N)=A%(L,M,N)+1:B=B-1
  44. 2080 IF B>0 THEN 2020
  45. 2100 IF U=0 THEN 2190
  46. 2105 REM KETTE ODER KAPERN ?
  47. 2110 IF 10*U/2-INT(U/2)*10=0 THEN Z=Z+1:N%(Z)=N:GOTO 2010
  48. 2120 B=A%(L,M,N)
  49. 2130 IF B<2 OR B>3 THEN 2190
  50. 2140 Z=Z+1:N%(Z)=N:A%(L,M,N)=0
  51. 2150 IF N<7 THEN A%(L,M,14)=A%(L,M,14)+B:GOTO 2170
  52. 2160 A%(L,M,13)=A%(L,M,13)+B
  53. 2170 IF N=1 OR N=7 THEN 2190
  54. 2180 N=N-1:GOTO 2120
  55. 2190 ZE=Z:RETURN
  56. 2480 :
  57. 2490 REM VERZWEIGUNG
  58. 2500 FOR M=1 TO 6
  59. 2510 : IF A%(S,T,M+R)=0 THEN 2615
  60. 2520 : FOR N=0 TO 14
  61. 2530 :  A%(L,M,N)=A%(S,T,N)
  62. 2540 : NEXT N
  63. 2550 : N=M+R
  64. 2560 : GOSUB 2000
  65. 2562 IF R=0 THEN KA=13:GOTO 2566
  66. 2564 KA=14
  67. 2566 KD=A%(L,M,KA)-A%(0,0,KA)
  68. 2568 : A%(L,M,15)=A%(L,M,13)-A%(L,M,14)+KD
  69. 2570 : GOSUB 3000
  70. 2580 : IF EA=0 THEN 2600
  71. 2590 : IF R=0 THEN A%(L,M,15)=60:EE=1:GOTO 2620
  72. 2595 : GOTO 2615
  73. 2600 : IF EB=0 THEN 2630
  74. 2610 : IF R=6 THEN A%(L,M,15)=-60:EE=1:GOTO 2620
  75. 2615 : A%(L,M,0)=0
  76. 2620 : EA=0:EB=0
  77. 2630 NEXT M
  78. 2640 RETURN
  79. 2980 :
  80. 2990 REM SPIELENDE ?
  81. 3000 IF A%(L,M,13)=>6*BA THEN EA=1:GOTO 3100
  82. 3010 IF A%(L,M,14)=>6*BA THEN EB=1:GOTO 3100
  83. 3030 BS=0
  84. 3040 FOR N=1 TO 12
  85. 3050 : BS=A%(L,M,N)+BS
  86. 3060 : IF N=6 AND BS=0 THEN EB=1
  87. 3070 : IF N=6 THEN BS=0
  88. 3080 : IF N=12 AND BS=0 THEN EA=1
  89. 3090 NEXT N
  90. 3100 RETURN
  91. 3480 :
  92. 3490 REM AUSWAHL
  93. 3500 IF R=0 THEN W=-60:GOTO 3520
  94. 3510 W=60
  95. 3520 FOR M=1 TO 6
  96. 3530 : IF A%(L,M,0)=0 THEN 3570
  97. 3540 : IF R=0 AND A%(L,M,15)<W THEN 3570
  98. 3550 : IF R=6 AND A%(L,M,15)>W THEN 3570
  99. 3560 : W=A%(L,M,15)
  100. 3570 NEXT M
  101. 3580 Z=0
  102. 3590 FOR M=1 TO 6
  103. 3600 : IF A%(L,M,0)=1 AND A%(L,M,15)=W THEN Z=Z+1:N%(Z)=M
  104. 3610 NEXT M
  105. 3620 IF Z=1 THEN 3650
  106. 3640 ZE=Z:Z=INT(RND(1)*ZE)+1
  107. 3650 Q=N%(Z)
  108. 3660 RETURN
  109. 3980 :
  110. 3990 REM AUSGABE
  111. 4000 POKE 211,7:POKE 214,7:SYS 58732:PRINT D$;
  112. 4010 FOR N=1 TO 6
  113. 4030 : POKE 211,38-5*N:SYS 58732:PRINT A%(L,M,N);
  114. 4050 NEXT N
  115. 4060 POKE 211,3:SYS 58732:PRINT A%(L,M,13)
  116. 4090 POKE 211,2:POKE 214,15:SYS 58732:PRINT D$;
  117. 4100 FOR N=7 TO 12
  118. 4120 : POKE 211,5*(N-6)-2:SYS 58732:PRINT A%(L,M,N);
  119. 4140 NEXT N
  120. 4150 POKE 211,33:SYS 58732:PRINT A%(L,M,14)
  121. 4170 IF ZE=0 THEN 4290
  122. 4175 REM KENNZ.KETTE / KAPERN
  123. 4180 FOR Z=1 TO ZE
  124. 4190 : IF N%(Z)>6 THEN 4240
  125. 4200 : POKE 214,6:POKE 211,40-5*N%(Z):SYS 58732:PRINT"[215]";:GOTO 4280
  126. 4240 : POKE 214,16:POKE 211,5*(N%(Z)-6):SYS 58732:PRINT"[215]";
  127. 4280 NEXT Z
  128. 4290 RETURN
  129. 4480 :
  130. 4490 REM ZUGGENERATOR
  131. 4500 IF R=6 THEN POKE 211,0:POKE 214,1:SYS 58732:PRINT B$
  132. 4510 IF R=0 THEN POKE 211,0:POKE 214,21:SYS 58732:PRINT B$
  133. 4520 IF R=0 THEN POKE 211,0:POKE 214,1:SYS 58732:PRINT"  A DENKT";
  134. 4530 IF R=6 THEN POKE 211,0:POKE 214,21:SYS 58732:PRINT"  B DENKT";
  135. 4540 S=0:T=0:L=0:GZ=1
  136. 4550 GOSUB 2500
  137. 4560 IF GZ=G OR EE=1 OR ZG<2 THEN EE=0:GOTO 4760
  138. 4570 FOR T0=1 TO 6
  139. 4580 : PRINT T0;
  140. 4590 : IF A%(S,T0,0)=0 THEN 4740
  141. 4600 : T=T0
  142. 4610 : GZ=GZ+1:L=1
  143. 4620 : IF R=6 THEN R=0:GOTO 4640
  144. 4630 : R=6
  145. 4640 : GOSUB 2500
  146. 4650 : GOSUB 3500
  147. 4660 : IF R=6 THEN R=0:GOTO 4680
  148. 4670 : R=6
  149. 4680 : IF EE=1 THEN 4730
  150. 4690 : S=1:T=Q:L=2
  151. 4700 : GOSUB 2500
  152. 4710 : GOSUB 3500
  153. 4720 : IF GZ<G AND EE=0 THEN S=2:T=Q:L=1:GOTO 4610
  154. 4730 : A%(0,T0,15)=W:S=0:GZ=1:EE=0
  155. 4740 NEXT T0
  156. 4750 L=0
  157. 4760 GOSUB 3500
  158. 4770 N=Q+R:M=0
  159. 4780 PRINT" UND SETZT !";
  160. 4790 POKE 54290,21
  161. 4800 POKE 54290,20
  162. 4810 RETURN
  163. 4830 RETURN
  164. 4980 :
  165. 4990 REM EINGABE
  166. 5000 POKE 211,0:POKE 214,1:SYS 58732
  167. 5010 IF R=0 THEN PRINT"      SPIELER A SETZT !"
  168. 5020 IF R=6 THEN PRINT B$
  169. 5030 POKE 211,0:POKE 214,21:SYS 58732
  170. 5040 IF R=6 THEN PRINT"      SPIELER B SETZT !"
  171. 5050 IF R=0 THEN PRINT B$
  172. 5060 GET G$:IF G$=" "THEN 5060
  173. 5070 Q=VAL(G$):IF Q<1 OR Q>6 THEN 5060
  174. 5075 POKE 211,0:POKE 214,23:SYS 58732:PRINT B$
  175. 5080 N=Q+R:L=0:M=0
  176. 5090 IF A%(L,M,N)>0 THEN 5190
  177. 5095 POKE 54290,21
  178. 5100 POKE 54290,20
  179. 5105 POKE 211,3:POKE 214,23:SYS 58732
  180. 5110 PRINT"FELD IST NULL ! - NEU SETZEN !"
  181. 5130 POKE 54290,21
  182. 5140 POKE 54290,20
  183. 5180 GOTO 5060
  184. 5190 RETURN
  185. 5880 :
  186. 5890 REM VORPRG
  187. 5900 POKE 160,0:POKE 161,0:POKE 162,0
  188. 5910 F=TI+150
  189. 5920 IF TI<F THEN 5920
  190. 5940 REM GONG/STIMME 3
  191. 5950 FOR J=24272 TO 24296:POKE K+J,0:NEXT
  192. 5960 POKE 54287,15
  193. 5970 POKE 54291,48:POKE 54292,140
  194. 5980 POKE 54294,110:POKE 54295,247
  195. 5990 POKE 54296,31
  196. 6020 PRINT"[147]"
  197. 6030 PRINT" [213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]"
  198. 6040 PRINT" [171][192][192][192][192][192][201]          SPIELER A           [221]"
  199. 6050 PRINT" [221]K    [171][192][192][192][192][178][192][192][192][192][178][192][192][192][192][178][192][192][192][192][178][192][192][192][192][178][192][192][192][192][201][221]"
  200. 6060 PRINT" [221]A    [221]    [221]    [221]    [221]    [221]    [221]    [221][221]"
  201. 6070 PRINT" [221]L    [221]    [221]    [221]    [221]    [221]    [221]    [221][221]"
  202. 6080 PRINT" [221]A    [221]    [221]    [221]    [221]    [221]    [221]    [221][221]"
  203. 6090 PRINT" [221]H   A  6    5    4    3    2    1  [182][146][221]"
  204. 6100 PRINT" [171][192][192][192][192][192][203]   [213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]          [221]"
  205. 6110 PRINT" [221]         [221] M A N C A L A [221]          [221]"
  206. 6120 PRINT" [221]         [202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203]    [213][192][192][192][192][192][179]"
  207. 6130 PRINT" [221][181] 1    2    3    4    5    6   B[146]   K[221]"
  208. 6140 PRINT" [221][221]    [221]    [221]    [221]    [221]    [221]    [221]    A[221]"
  209. 6150 PRINT" [221][221]    [221]    [221]    [221]    [221]    [221]    [221]    L[221]"
  210. 6160 PRINT" [221][221]    [221]    [221]    [221]    [221]    [221]    [221]    A[221]"
  211. 6170 PRINT" [221][202][192][192][192][192][177][192][192][192][192][177][192][192][192][192][177][192][192][192][192][177][192][192][192][192][177][192][192][192][192][179]    H[221]"
  212. 6180 PRINT" [221]           SPIELER B          [202][192][192][192][192][192][179]"
  213. 6190 PRINT" [202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203]"
  214. 6210 PRINT"   GRUNDWERTE DER FELDER (3-9):";
  215. 6220 GET G$:IF G$=" "THEN 6220
  216. 6225 BA=VAL(G$):IF BA<3 OR BA>9 THEN 6220
  217. 6230 PRINT BA
  218. 6240 PRINT"   ANZAHL SPIELER ? (0-2)";
  219. 6250 GET G$:IF G$="" THEN 6250
  220. 6255 I=VAL(G$):IF I<0 OR I>2 THEN 6250
  221. 6260 PRINT I
  222. 6270 PRINT"   WER BEGINNT (A/B) ?";
  223. 6280 GET R$:IF R$="A"OR R$="B"THEN 6290
  224. 6285 GOTO 6280
  225. 6290 PRINT"  ";R$
  226. 6300 IF I=2 THEN 6350
  227. 6320 PRINT"   SPIELSTAERKE ZUGGENERATOR (1-4):";
  228. 6330 GET G$:IF G$=" "THEN 6330
  229. 6340 G=VAL(G$):IF G<1 OR G>4 THEN 6330
  230. 6345 PRINT G
  231. 6350 POKE 211,4:POKE 214,11:SYS 58732:PRINT"*";BA;"*"
  232. 6360 FOR N=1 TO 12:A%(L,M,N)=BA:NEXT N
  233. 6370 A%(L,M,0)=1
  234. 6380 FOR N=13 TO 15:A%(L,M,N)=0:NEXT N
  235. 6385 GOSUB 4000
  236. 6390 F=TI+120
  237. 6395 IF TI<F THEN 6395
  238. 6400 POKE 211,0:POKE 214,20:SYS 58732
  239. 6405 FOR ZX=1 TO 4:PRINT B$:NEXT
  240. 6410 IF R$="B" THEN R=6
  241. 6415 IF R$="A" THEN R=0
  242. 6480 :
  243. 6490 REM HAUPTPROGRAMM
  244. 6500 IF I=0 OR(I=1 AND R=0)THEN GOSUB 4500:GOTO 6540
  245. 6520 GOSUB 5000
  246. 6540 :  POKE 211,7:POKE 214,6:SYS 58732:PRINT D$
  247. 6550 POKE 211,2:POKE 214,16:SYS 58732:PRINT D$
  248. 6560 IF R=0 THEN 6580
  249. 6570 POKE 211,5*(N-6)-1:POKE 214,16:SYS 58732:PRINT"[209]":GOTO 6585
  250. 6580 POKE 211,39-5*N:POKE 214,6:SYS 58732:PRINT"[209]"
  251. 6583 POKE 160,0:POKE 161,0:POKE 162,0
  252. 6585 F=TI+90
  253. 6588 IF TI<F THEN 6588
  254. 6590 ZG=ZG+1
  255. 6600 GOSUB 2000
  256. 6610 GOSUB 4000
  257. 6620 GOSUB 3000
  258. 6630 IF EA=1 OR EB=1 THEN 6660
  259. 6635 IF R=6 THEN R=0:GOTO 6500
  260. 6640 R=6:GOTO 6500
  261. 6645 :
  262. 6650 REM ENDE
  263. 6660 POKE 211,6:POKE 214,20:SYS 58732
  264. 6670 IF EA=1 THEN PRINT"SPIELER A HAT"
  265. 6675 IF EB=1 THEN PRINT"SPIELER B HAT"
  266. 6680 PRINT"      NACH";ZG;"ZUEGEN GEWONNEN !"
  267. 6685 FOR J=24272 TO 24296:POKE K+J,0:NEXT J
  268. 6730 IF EB=1 THEN 6790
  269. 6732 REM TRILLER/ST1
  270. 6735 POKE 54278,240:POKE 54296,15
  271. 6740 POKE 54276,17
  272. 6745 FOR J=1 TO 3
  273. 6750 H=1:F=TI
  274. 6755 POKE 54273,H
  275. 6760 H=H+10
  276. 6765 IF TI<F+H/2 THEN 6765
  277. 6770 IF H<125 THEN 6755
  278. 6775 NEXT J
  279. 6780 POKE 54276,16
  280. 6785 GOTO 6855
  281. 6787 REM DREIKLANG
  282. 6790 POKE 54272,103:POKE 54273,17
  283. 6795 POKE 54277,31:POKE 54278,13:POKE 54296,15
  284. 6800 POKE 54276,17
  285. 6805 F=TI
  286. 6810 IF TI<F+30 THEN 6810
  287. 6815 POKE 54279,237:POKE 54280,21
  288. 6820 POKE 54284,31:POKE 54285,13:POKE 54283,17
  289. 6830 IF TI<F+60 THEN 6830
  290. 6835 POKE 54286,20:POKE 54287,26
  291. 6840 POKE 54291,31:POKE 54292,13:POKE 54290,17
  292. 6855 PRINT"      NEUES SPIEL (J/N) ?"
  293. 6857 IF TI<F+180 THEN POKE 54276,16:POKE 54283,16:POKE 54290,16
  294. 6860 GET G$:IF G$=""THEN 6860
  295. 6870 IF G$="J"THEN EA=0:EB=0:ZG=0:ZE=0:GOTO 5950
  296. 6880 PRINT"[147]";:END
  297.