home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
87xx
/
8711.d64
/
b-mancala
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
7KB
|
297 lines
80 POKE 53280,0
90 POKE 53281,0
100 PRINT"[147]":PRINT"[158]"
102 POKE 211,0:POKE 214,5:SYS 58732
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]"
110 PRINT" [221] [213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201] [221]"
120 PRINT" [221] [221] M A N C A L A [221] [221]"
130 PRINT" [221] [202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203] [221]"
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]"
152 PRINT" [221] PROGRAMMIERT VON : [221]"
160 PRINT" [221] BENNO B O S E N [221]"
180 PRINT" [221] LENAUSTRASSE 10 [221]"
190 PRINT" [221] 5216 NIEDERKASSEL 2 [221]"
200 PRINT" [221] TELEFON 02208/5869 [221]"
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]"
970 :
980 REM @ S1024
990 :
1000 REM NUM. VARIABLEN
1010 B=0:BA=0:BS=0:EA=0:EB=0:EE=0:F=0
1020 G=0:GZ=0:H=0:I=0:J=0:L=0:M=0:N=0
1025 K=30000
1030 Q=0:R=0:S=0:T=0:T0=0:KA=0:KD=0
1040 U=0:W=0:Z=0:ZE=0:ZG=0:ZX=0
1050 :
1100 REM STRINGS
1110 G$="":R$=""
1130 D$="[221] [221] [221] [221] [221] [221] [221]"
1150 B$=" "
1200 :
1210 REM ARRAYS
1220 DIM A%(2,6,15),N%(10)
1970 GOTO 5900
1980 :
1990 REM SETZEN
2000 Z=0
2010 U=0:B=A%(L,M,N):A%(L,M,N)=0
2020 IF R=0 AND N=6 THEN A%(L,M,13)=A%(L,M,13)+1:B=B-1
2030 IF R=6 AND N=12 THEN A%(L,M,14)=A%(L,M,14)+1:B=B-1
2040 IF B=0 THEN 2100
2050 IF N=6 OR N=12 THEN U=U+1
2060 IF N=12 THEN N=0
2070 N=N+1:A%(L,M,N)=A%(L,M,N)+1:B=B-1
2080 IF B>0 THEN 2020
2100 IF U=0 THEN 2190
2105 REM KETTE ODER KAPERN ?
2110 IF 10*U/2-INT(U/2)*10=0 THEN Z=Z+1:N%(Z)=N:GOTO 2010
2120 B=A%(L,M,N)
2130 IF B<2 OR B>3 THEN 2190
2140 Z=Z+1:N%(Z)=N:A%(L,M,N)=0
2150 IF N<7 THEN A%(L,M,14)=A%(L,M,14)+B:GOTO 2170
2160 A%(L,M,13)=A%(L,M,13)+B
2170 IF N=1 OR N=7 THEN 2190
2180 N=N-1:GOTO 2120
2190 ZE=Z:RETURN
2480 :
2490 REM VERZWEIGUNG
2500 FOR M=1 TO 6
2510 : IF A%(S,T,M+R)=0 THEN 2615
2520 : FOR N=0 TO 14
2530 : A%(L,M,N)=A%(S,T,N)
2540 : NEXT N
2550 : N=M+R
2560 : GOSUB 2000
2562 IF R=0 THEN KA=13:GOTO 2566
2564 KA=14
2566 KD=A%(L,M,KA)-A%(0,0,KA)
2568 : A%(L,M,15)=A%(L,M,13)-A%(L,M,14)+KD
2570 : GOSUB 3000
2580 : IF EA=0 THEN 2600
2590 : IF R=0 THEN A%(L,M,15)=60:EE=1:GOTO 2620
2595 : GOTO 2615
2600 : IF EB=0 THEN 2630
2610 : IF R=6 THEN A%(L,M,15)=-60:EE=1:GOTO 2620
2615 : A%(L,M,0)=0
2620 : EA=0:EB=0
2630 NEXT M
2640 RETURN
2980 :
2990 REM SPIELENDE ?
3000 IF A%(L,M,13)=>6*BA THEN EA=1:GOTO 3100
3010 IF A%(L,M,14)=>6*BA THEN EB=1:GOTO 3100
3030 BS=0
3040 FOR N=1 TO 12
3050 : BS=A%(L,M,N)+BS
3060 : IF N=6 AND BS=0 THEN EB=1
3070 : IF N=6 THEN BS=0
3080 : IF N=12 AND BS=0 THEN EA=1
3090 NEXT N
3100 RETURN
3480 :
3490 REM AUSWAHL
3500 IF R=0 THEN W=-60:GOTO 3520
3510 W=60
3520 FOR M=1 TO 6
3530 : IF A%(L,M,0)=0 THEN 3570
3540 : IF R=0 AND A%(L,M,15)<W THEN 3570
3550 : IF R=6 AND A%(L,M,15)>W THEN 3570
3560 : W=A%(L,M,15)
3570 NEXT M
3580 Z=0
3590 FOR M=1 TO 6
3600 : IF A%(L,M,0)=1 AND A%(L,M,15)=W THEN Z=Z+1:N%(Z)=M
3610 NEXT M
3620 IF Z=1 THEN 3650
3640 ZE=Z:Z=INT(RND(1)*ZE)+1
3650 Q=N%(Z)
3660 RETURN
3980 :
3990 REM AUSGABE
4000 POKE 211,7:POKE 214,7:SYS 58732:PRINT D$;
4010 FOR N=1 TO 6
4030 : POKE 211,38-5*N:SYS 58732:PRINT A%(L,M,N);
4050 NEXT N
4060 POKE 211,3:SYS 58732:PRINT A%(L,M,13)
4090 POKE 211,2:POKE 214,15:SYS 58732:PRINT D$;
4100 FOR N=7 TO 12
4120 : POKE 211,5*(N-6)-2:SYS 58732:PRINT A%(L,M,N);
4140 NEXT N
4150 POKE 211,33:SYS 58732:PRINT A%(L,M,14)
4170 IF ZE=0 THEN 4290
4175 REM KENNZ.KETTE / KAPERN
4180 FOR Z=1 TO ZE
4190 : IF N%(Z)>6 THEN 4240
4200 : POKE 214,6:POKE 211,40-5*N%(Z):SYS 58732:PRINT"[215]";:GOTO 4280
4240 : POKE 214,16:POKE 211,5*(N%(Z)-6):SYS 58732:PRINT"[215]";
4280 NEXT Z
4290 RETURN
4480 :
4490 REM ZUGGENERATOR
4500 IF R=6 THEN POKE 211,0:POKE 214,1:SYS 58732:PRINT B$
4510 IF R=0 THEN POKE 211,0:POKE 214,21:SYS 58732:PRINT B$
4520 IF R=0 THEN POKE 211,0:POKE 214,1:SYS 58732:PRINT" A DENKT";
4530 IF R=6 THEN POKE 211,0:POKE 214,21:SYS 58732:PRINT" B DENKT";
4540 S=0:T=0:L=0:GZ=1
4550 GOSUB 2500
4560 IF GZ=G OR EE=1 OR ZG<2 THEN EE=0:GOTO 4760
4570 FOR T0=1 TO 6
4580 : PRINT T0;
4590 : IF A%(S,T0,0)=0 THEN 4740
4600 : T=T0
4610 : GZ=GZ+1:L=1
4620 : IF R=6 THEN R=0:GOTO 4640
4630 : R=6
4640 : GOSUB 2500
4650 : GOSUB 3500
4660 : IF R=6 THEN R=0:GOTO 4680
4670 : R=6
4680 : IF EE=1 THEN 4730
4690 : S=1:T=Q:L=2
4700 : GOSUB 2500
4710 : GOSUB 3500
4720 : IF GZ<G AND EE=0 THEN S=2:T=Q:L=1:GOTO 4610
4730 : A%(0,T0,15)=W:S=0:GZ=1:EE=0
4740 NEXT T0
4750 L=0
4760 GOSUB 3500
4770 N=Q+R:M=0
4780 PRINT" UND SETZT !";
4790 POKE 54290,21
4800 POKE 54290,20
4810 RETURN
4830 RETURN
4980 :
4990 REM EINGABE
5000 POKE 211,0:POKE 214,1:SYS 58732
5010 IF R=0 THEN PRINT" SPIELER A SETZT !"
5020 IF R=6 THEN PRINT B$
5030 POKE 211,0:POKE 214,21:SYS 58732
5040 IF R=6 THEN PRINT" SPIELER B SETZT !"
5050 IF R=0 THEN PRINT B$
5060 GET G$:IF G$=" "THEN 5060
5070 Q=VAL(G$):IF Q<1 OR Q>6 THEN 5060
5075 POKE 211,0:POKE 214,23:SYS 58732:PRINT B$
5080 N=Q+R:L=0:M=0
5090 IF A%(L,M,N)>0 THEN 5190
5095 POKE 54290,21
5100 POKE 54290,20
5105 POKE 211,3:POKE 214,23:SYS 58732
5110 PRINT"FELD IST NULL ! - NEU SETZEN !"
5130 POKE 54290,21
5140 POKE 54290,20
5180 GOTO 5060
5190 RETURN
5880 :
5890 REM VORPRG
5900 POKE 160,0:POKE 161,0:POKE 162,0
5910 F=TI+150
5920 IF TI<F THEN 5920
5940 REM GONG/STIMME 3
5950 FOR J=24272 TO 24296:POKE K+J,0:NEXT
5960 POKE 54287,15
5970 POKE 54291,48:POKE 54292,140
5980 POKE 54294,110:POKE 54295,247
5990 POKE 54296,31
6020 PRINT"[147]"
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]"
6040 PRINT" [171][192][192][192][192][192][201] SPIELER A [221]"
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]"
6060 PRINT" [221]A [221] [221] [221] [221] [221] [221] [221][221]"
6070 PRINT" [221]L [221] [221] [221] [221] [221] [221] [221][221]"
6080 PRINT" [221]A [221] [221] [221] [221] [221] [221] [221][221]"
6090 PRINT" [221]H A 6 5 4 3 2 1 [182][146][221]"
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]"
6110 PRINT" [221] [221] M A N C A L A [221] [221]"
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]"
6130 PRINT" [221][181] 1 2 3 4 5 6 B[146] K[221]"
6140 PRINT" [221][221] [221] [221] [221] [221] [221] [221] A[221]"
6150 PRINT" [221][221] [221] [221] [221] [221] [221] [221] L[221]"
6160 PRINT" [221][221] [221] [221] [221] [221] [221] [221] A[221]"
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]"
6180 PRINT" [221] SPIELER B [202][192][192][192][192][192][179]"
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]"
6210 PRINT" GRUNDWERTE DER FELDER (3-9):";
6220 GET G$:IF G$=" "THEN 6220
6225 BA=VAL(G$):IF BA<3 OR BA>9 THEN 6220
6230 PRINT BA
6240 PRINT" ANZAHL SPIELER ? (0-2)";
6250 GET G$:IF G$="" THEN 6250
6255 I=VAL(G$):IF I<0 OR I>2 THEN 6250
6260 PRINT I
6270 PRINT" WER BEGINNT (A/B) ?";
6280 GET R$:IF R$="A"OR R$="B"THEN 6290
6285 GOTO 6280
6290 PRINT" ";R$
6300 IF I=2 THEN 6350
6320 PRINT" SPIELSTAERKE ZUGGENERATOR (1-4):";
6330 GET G$:IF G$=" "THEN 6330
6340 G=VAL(G$):IF G<1 OR G>4 THEN 6330
6345 PRINT G
6350 POKE 211,4:POKE 214,11:SYS 58732:PRINT"*";BA;"*"
6360 FOR N=1 TO 12:A%(L,M,N)=BA:NEXT N
6370 A%(L,M,0)=1
6380 FOR N=13 TO 15:A%(L,M,N)=0:NEXT N
6385 GOSUB 4000
6390 F=TI+120
6395 IF TI<F THEN 6395
6400 POKE 211,0:POKE 214,20:SYS 58732
6405 FOR ZX=1 TO 4:PRINT B$:NEXT
6410 IF R$="B" THEN R=6
6415 IF R$="A" THEN R=0
6480 :
6490 REM HAUPTPROGRAMM
6500 IF I=0 OR(I=1 AND R=0)THEN GOSUB 4500:GOTO 6540
6520 GOSUB 5000
6540 : POKE 211,7:POKE 214,6:SYS 58732:PRINT D$
6550 POKE 211,2:POKE 214,16:SYS 58732:PRINT D$
6560 IF R=0 THEN 6580
6570 POKE 211,5*(N-6)-1:POKE 214,16:SYS 58732:PRINT"[209]":GOTO 6585
6580 POKE 211,39-5*N:POKE 214,6:SYS 58732:PRINT"[209]"
6583 POKE 160,0:POKE 161,0:POKE 162,0
6585 F=TI+90
6588 IF TI<F THEN 6588
6590 ZG=ZG+1
6600 GOSUB 2000
6610 GOSUB 4000
6620 GOSUB 3000
6630 IF EA=1 OR EB=1 THEN 6660
6635 IF R=6 THEN R=0:GOTO 6500
6640 R=6:GOTO 6500
6645 :
6650 REM ENDE
6660 POKE 211,6:POKE 214,20:SYS 58732
6670 IF EA=1 THEN PRINT"SPIELER A HAT"
6675 IF EB=1 THEN PRINT"SPIELER B HAT"
6680 PRINT" NACH";ZG;"ZUEGEN GEWONNEN !"
6685 FOR J=24272 TO 24296:POKE K+J,0:NEXT J
6730 IF EB=1 THEN 6790
6732 REM TRILLER/ST1
6735 POKE 54278,240:POKE 54296,15
6740 POKE 54276,17
6745 FOR J=1 TO 3
6750 H=1:F=TI
6755 POKE 54273,H
6760 H=H+10
6765 IF TI<F+H/2 THEN 6765
6770 IF H<125 THEN 6755
6775 NEXT J
6780 POKE 54276,16
6785 GOTO 6855
6787 REM DREIKLANG
6790 POKE 54272,103:POKE 54273,17
6795 POKE 54277,31:POKE 54278,13:POKE 54296,15
6800 POKE 54276,17
6805 F=TI
6810 IF TI<F+30 THEN 6810
6815 POKE 54279,237:POKE 54280,21
6820 POKE 54284,31:POKE 54285,13:POKE 54283,17
6830 IF TI<F+60 THEN 6830
6835 POKE 54286,20:POKE 54287,26
6840 POKE 54291,31:POKE 54292,13:POKE 54290,17
6855 PRINT" NEUES SPIEL (J/N) ?"
6857 IF TI<F+180 THEN POKE 54276,16:POKE 54283,16:POKE 54290,16
6860 GET G$:IF G$=""THEN 6860
6870 IF G$="J"THEN EA=0:EB=0:ZG=0:ZE=0:GOTO 5950
6880 PRINT"[147]";:END