10 REM ******************* 11 REM * * 12 REM * 3D-VIER-GEWINNT * 13 REM * * 14 REM * (C) 1984 BY * 15 REM * * 16 REM * UWE WEISS * 17 REM * LOESKENWEG 60 * 18 REM * 4300 ESSEN 1 * 19 REM * * 20 REM * TEL 0201/326366 * 21 REM * * 22 REM ******************* 23 : 24 : 25 : 26 : 27 : 28 : 29 : 30 : 100 GOSUB1500:REM INITIALISIERUNG 110 ZG=0:PL=3:GW=0 120 PL=5-PL:ZG=ZG+1 130 IF(GW<>0)OR(ZG>64)THEN3500:REM SPIELENDE 140 PRINTCO$(PL):GOSUB3100 141 H=(20-LEN(SP$(PL)))/2:X0=1:Y0=24 145 X$=LEFT$(BL$,H)+SP$(PL)+LEFT$(BL$,10):GOSUB3010:PRINTCHR$(19) 150 IFSP$(PL)="C 64"THEN500 160 REM *** SPIELERZUG *** 170 X=0:Y=0:A0=1575 180 A1=1575+2*X-80*Y 200 POKEA0,32:A0=A1 210 POKEA1,160:POKEA1+54272,CO(PL) 220 J=PEEK(56320)AND31 230 GETK$:K=ASC(K$+CHR$(0)) 235 IF(K=0)AND(J=31)THEN220 240 IFK=133THEN350:REM ZUGVORSCHLAG 250 IFK=134THEN360:REM SEITENWECHSEL 260 IF(K=13)OR((JAND16)=0)THEN320 270 IF(K=145)OR((JAND1)=0)THENIFY<3THENY=Y+1 280 IF(K=17)OR((JAND2)=0)THENIFY>0THENY=Y-1 290 IF(K=157)OR((JAND4)=0)THENIFX>0THENX=X-1 300 IF(K=29)OR((JAND8)=0)THENIFX<3THENX=X+1 310 GOTO180 320 IFBE(X,Y)=4THEN220 330 GOSUB2500:REM ZUG AUSFUEHREN 340 GOTO120 350 POKEA1,32:GOSUB2000:X=ZX:Y=ZY:GOTO180 360 SP$=SP$(2):SP$(2)=SP$(3):SP$(3)=SP$:GOTO140 500 REM *** COMPUTERZUG *** 510 GOSUB2000 520 X=ZX:Y=ZY 530 AD=1575+2*X-80*Y 540 POKEAD,160:POKEAD+54272,CO(PL) 550 GOSUB2500:POKEAD,32 560 GOTO120 1500 IFRU=1THEN1645 1505 RU=1 1510 DIMFE(3,3,3),BE(3,3),BW(3,3),W(3,3) 1511 DIMRX(3,3),RY(3,3),RZ(3,3),MX(15) 1512 DIMUX(3),UY(3),UZ(3),OX(3),OY(3),OZ(3) 1513 DIMX$(3),W$(3),SP$(3),CO$(3),CL$(3) 1514 DIMX(3),Y(3),Z(3),SS(3),CO(3) 1515 H0$=CHR$(18)+"[169]" 1516 H1$=CHR$(17)+CHR$(157) 1517 H2$=H1$+CHR$(157)+CHR$(157) 1518 H3$=CHR$(146)+"[169]" 1520 W$(0)=H0$+H1$+"[180]"+H1$+"[204][175]"+H3$ 1525 W$(1)=H0$+H1$+" "+H1$+" "+H3$ 1530 W$(2)=H0$+"[180] "+H2$+"[180][204][175]"+H2$+"[204][175]"+H3$ 1535 W$(3)=H0$+"[180] "+H2$+" [204][175]"+H2$+" "+H3$ 1536 X$(0)=W$(3) 1537 FORI=1TO3:X$(I)=W$(2):NEXT 1539 PRINTCHR$(147):POKE53280,0:POKE53281,12 1540 PRINTCHR$(19)CHR$(18)CHR$(144); 1545 BL$=" " 1550 PRINTLEFT$(BL$,12)"3D-VIER-GEWINNT"LEFT$(BL$,13) 1555 PRINT:PRINT:PRINT:PRINT" BITTE WAEHLEN SIE:" 1560 PRINT:PRINT" 1 = SCHWARZWEISSFERNSEHER" 1565 PRINT:PRINT" 2 = FARBFERNSEHER" 1570 GETK$:K=VAL(K$) 1575 ONKGOTO1585,1605 1580 GOTO1570 1585 CO$(2)=CHR$(5):CO$(3)=CHR$(144) 1590 CL$(2)=CHR$(155):CL$(3)=CHR$(151) 1595 CO(2)=1:CO(3)=0 1600 GOTO1620 1605 CO$(2)=CHR$(28):CO$(3)=CHR$(31) 1610 CL$(2)=CHR$(150):CL$(3)=CHR$(154) 1615 CO(2)=2:CO(3)=6 1620 SP$(2)="C 64":SP$(3)="C 64" 1625 S=54272:POKES+23,113:POKES+24,31 1630 POKES+2,0:POKES+3,8:POKES+4,0 1635 POKES+5,21:POKES+6,240 1640 GOTO1670 1645 SP$=SP$(2):SP$(2)=SP$(3):SP$(3)=SP$ 1650 FORI=0TO3:FORJ=0TO3 1655 BE(I,J)=0 1660 FORK=1TO3:FE(I,J,K)=0 1665 NEXTK,J,I 1670 PRINTCHR$(147)CHR$(18)CHR$(144); 1675 PRINT"F1:ZUGVORSCHLAG";LEFT$(BL$,9);"F3:SEITENWECHSEL" 1680 PRINTCHR$(5) 1685 FORI=1TO4 1690 PRINT:PRINT:PRINT 1695 PRINT" [207][208] [207][208] [207][208] [207][208]" 1700 PRINT" [204][186] [204][186] [204][186] [204][186]":NEXT 1705 FORI=2TO3 1710 PRINTCHR$(19) 1715 PRINTCO$(I)"SPIELER";I-1;" "SP$(I);BL$ 1720 PRINTCHR$(145)CHR$(145);SPC(9)" "; 1725 INPUTSP$(I) 1730 SS(I)=1 1735 IFSP$(I)<>"C 64"THEN1755 1740 PRINT"SPIELSTAERKE 1/2" 1745 GETK$:IFK$="2"THENSS(I)=2:GOTO1755 1750 IFK$<>"1"THEN1745 1755 PRINTCHR$(19) 1760 PRINTLEFT$(BL$,30):PRINTLEFT$(BL$,30) 1765 NEXT 1770 FORI=0TO3:FORJ=0TO3 1775 RX(I,J)=1/16:RY(I,J)=1/16:RZ(I,J)=1/8:FE(I,J,0)=1 1780 NEXT:NEXT 1785 FORI=0TO3 1790 RX(I,0)=1:RY(I,0)=1 1795 UX(I)=1/8:UY(I)=1/8:UZ(I)=1/16 1800 OX(I)=1/8:OY(I)=1/8:OZ(I)=1/16 1805 NEXT 1810 UZ(0)=1:OZ(0)=1 1815 D1=1/8:D2=D1:D3=D1:D4=D1 1820 RETURN 2000 XX=0:GOSUB2200 2010 IFSS(PL)=1THEN2100 2020 FORI=0TO3:FORJ=0TO3 2030 W(I,J)=BW(I,J) 2040 NEXT:NEXT 2050 XX=1:GOSUB2200 2060 FORI=0TO3:FORJ=0TO3 2070 BW=BW(I,J):BW(I,J)=W(I,J) 2080 IF(W(I,J)<64)AND(BW>0)THENBW(I,J)=BW(I,J)-BW/2 2090 NEXT:NEXT 2100 MAX=-5000:H=0 2110 FORI=0TO3:FORJ=0TO3 2120 BW=BW(I,J) 2130 IFBW=MAXTHENMX(H)=10*I+J:H=H+1 2140 IFBW>MAXTHENH=1:MX(0)=10*I+J:MAX=BW 2150 NEXT:NEXT 2160 ZZ=INT(RND(0)*(H)) 2170 ZX=INT(MX(ZZ)/10):ZY=MX(ZZ)-ZX*10 2180 RETURN 2200 FORY=0TO3:FORX=0TO3:BW=0 2210 Z=BE(X,Y)+XX:AD=1575+2*X-80*Y:POKEAD,160:POKEAD+54272,CO(PL) 2220 IFZ>3THENBW=-10000:GOTO2350 2230 BW=BW+RX(Y,Z)+RY(X,Z)+RZ(X,Y) 2240 IFY=ZTHENBW=BW+UX(X) 2250 IFX=ZTHENBW=BW+UY(Y) 2260 IFX=YTHENBW=BW+UZ(Z) 2270 IFY=3-ZTHENBW=BW+OX(X) 2280 IFX=3-ZTHENBW=BW+OY(Y) 2290 IFX=3-YTHENBW=BW+OZ(Z) 2300 IF(X=Y)AND(X=Z)THENBW=BW+D1 2310 IF(X=3-Y)AND(X=Z)THENBW=BW+D2 2320 IF(X=Y)AND(X=3-Z)THENBW=BW+D3 2330 IF(Y=Z)AND(X=3-Z)THENBW=BW+D4 2340 H0=BW*1E4-INT(BW*1E4) 2345 IFBW>64THENBW=64 2346 IFABS(H0-PL/10)<0.05THENBW=65 2350 BW(X,Y)=BW 2360 POKEAD,32 2370 NEXT:NEXT 2380 RETURN 2500 Z=BE(X,Y):BE(X,Y)=Z+1 2505 F=1114:D=3:GOSUB3800 2510 FE(X,Y,Z)=PL 2520 IFZ<>3THENFE(X,Y,Z+1)=1 2530 PRINTCO$(PL):X$=X$(Z):GOSUB3000 2540 H=1:Q=0:FORI=0TO3 2541 H9=FE(I,Y,Z):X(I)=I:Y(I)=Y:Z(I)=Z 2542 GOSUB2800:NEXT 2543 GOSUB2900:RX(Y,Z)=H 2550 H=1:Q=0:FORI=0TO3 2551 H9=FE(X,I,Z):X(I)=X:Y(I)=I:Z(I)=Z 2552 GOSUB2800:NEXT 2553 GOSUB2900:RY(X,Z)=H 2560 H=1:Q=0:FORI=0TO3 2561 H9=FE(X,Y,I):X(I)=X:Y(I)=Y:Z(I)=I 2562 GOSUB2800:NEXT 2563 GOSUB2900:RZ(X,Y)=H 2570 IFY<>ZTHEN2580 2571 H=1:Q=0:FORI=0TO3 2572 H9=FE(X,I,I):X(I)=X:Y(I)=I:Z(I)=I 2573 GOSUB2800:NEXT 2574 GOSUB2900:UX(X)=H 2580 IFX<>ZTHEN2590 2581 H=1:Q=0:FORI=0TO3 2582 H9=FE(I,Y,I):X(I)=I:Y(I)=Y:Z(I)=I 2583 GOSUB2800:NEXT 2584 GOSUB2900:UY(Y)=H 2590 IFX<>YTHEN2600 2591 H=1:Q=0:FORI=0TO3 2592 H9=FE(I,I,Z):X(I)=I:Y(I)=I:Z(I)=Z 2593 GOSUB2800:NEXT 2594 GOSUB2900:UZ(Z)=H 2600 IFY<>3-ZTHEN2610 2601 H=1:Q=0:FORI=0TO3 2602 H9=FE(X,I,3-I):X(I)=X:Y(I)=I:Z(I)=3-I 2603 GOSUB2800:NEXT 2604 GOSUB2900:OX(X)=H 2610 IFX<>3-ZTHEN2620 2611 H=1:Q=0:FORI=0TO3 2612 H9=FE(I,Y,3-I):X(I)=I:Y(I)=Y:Z(I)=3-I 2613 GOSUB2800:NEXT 2614 GOSUB2900:OY(Y)=H 2620 IFX<>3-YTHEN2630 2621 H=1:Q=0:FORI=0TO3 2622 H9=FE(I,3-I,Z):X(I)=I:Y(I)=3-I:Z(I)=Z 2623 GOSUB2800:NEXT 2624 GOSUB2900:OZ(Z)=H 2630 IF(X<>Y)OR(X<>Z)THEN2640 2631 H=1:Q=0:FORI=0TO3 2632 H9=FE(I,I,I):X(I)=I:Y(I)=I:Z(I)=I 2633 GOSUB2800:NEXT 2634 GOSUB2900:D1=H 2640 IF(X<>3-Y)OR(X<>Z)THEN2650 2641 H=1:Q=0:FORI=0TO3 2642 H9=FE(I,3-I,I):X(I)=I:Y(I)=3-I:Z(I)=I 2643 GOSUB2800:NEXT 2644 GOSUB2900:D2=H 2650 IF(X<>Y)OR(X<>3-Z)THEN2660 2651 H=1:Q=0:FORI=0TO3 2652 H9=FE(I,I,3-I):X(I)=I:Y(I)=I:Z(I)=3-I 2653 GOSUB2800:NEXT 2654 GOSUB2900:D3=H 2660 IF(Y<>Z)OR(X<>3-Z)THEN2670 2661 H=1:Q=0:FORI=0TO3 2662 H9=FE(3-I,I,I):X(I)=3-I:Y(I)=I:Z(I)=I 2663 GOSUB2800:NEXT 2664 GOSUB2900:D4=H 2670 Z=Z+1:IFZ=4THEN2700 2680 RX(Y,Z)=RX(Y,Z)*2 2681 RY(X,Z)=RY(X,Z)*2 2682 IFY=ZTHENUX(X)=UX(X)*2 2683 IFX=ZTHENUY(Y)=UY(Y)*2 2684 IFX=YTHENUZ(Z)=UZ(Z)*2 2685 IFY=3-ZTHENOX(X)=OX(X)*2 2686 IFX=3-ZTHENOY(Y)=OY(Y)*2 2687 IFX=3-YTHENOZ(Z)=OZ(Z)*2 2688 IF(X=Y)AND(X=Z)THEND1=2*D1 2689 IF(X=3-Y)AND(X=Z)THEND2=2*D2 2690 IF(X=Y)AND(X=3-Z)THEND3=2*D3 2691 IF(Y=Z)AND(X=3-Z)THEND4=2*D4 2700 RETURN 2800 IFH9=0THENH=H/2:RETURN 2810 IFH9=1THENRETURN 2820 IF(Q<2)OR(H9=Q)THENH=H*4:Q=H9:RETURN 2830 H=0:RETURN 2900 IFH=64THENH=H+PL/1E5 2910 IFH<>256THENRETURN 2920 FORJ=0TO3:GX(J)=X(J):GY(J)=Y(J):GZ(J)=Z(J):NEXT 2930 GW=PL:RETURN 3000 X0=6*X+Z+1:Y0=20-5*Y-Z 3010 POKE211,X0:POKE214,Y0:SYS58732 3020 PRINTX$;:RETURN 3100 POKE214,6:POKE211,30:SYS58732 3110 PRINT"[176][192][178][192][178][192][178][192][174]" 3120 GOSUB3180:PRINT"[221] [221] [221] [221] [221]" 3130 FORI=1TO3 3140 GOSUB3180:PRINT"[171][192][219][192][219][192][219][192][179]" 3150 GOSUB3180:PRINT"[221] [221] [221] [221] [221]":NEXT 3160 GOSUB3180:PRINT"[173][192][177][192][177][192][177][192][189]" 3170 RETURN 3180 POKE211,30:SYS58732:RETURN 3500 X$=CHR$(144)+CHR$(18) 3510 IFGW<>0THEN3540 3520 X$=X$+LEFT$(BL$,13)+"UNENTSCHIEDEN!"+LEFT$(BL$,13) 3530 GOTO3580 3540 H$="SIEGER: "+SP$(GW):H=LEN(H$) 3550 IFH>40THENH$=LEFT$(H$,40):H=40 3560 H=(40-H)/2 3570 X$=X$+LEFT$(BL$,H)+H$+LEFT$(BL$,H+.5) 3580 PRINTCHR$(19);X$:PRINTCHR$(19) 3590 F=4455:D=7:GOSUB3800 3591 F=5001:D=7:GOSUB3800 3592 F=5613:D=7:GOSUB3800 3593 F=5947:D=20:GOSUB3800 3594 F=4455:D=20:GOSUB3800 3595 F=5947:D=20:GOSUB3800 3596 F=4455:D=20:GOSUB3800 3597 F=5947:D=50:GOSUB3800 3600 IFGW<>0THEN3620 3610 POKE198,0:WAIT198,1:POKE198,0:GOTO100 3620 PRINTCO$(GW):GOSUB3750 3630 T=TI 3640 GETK$:IFK$<>""THEN100 3650 IFTI-T<30THEN3640 3660 PRINTCL$(GW):GOSUB3750 3670 T=TI 3680 GETK$:IFK$<>""THEN100 3690 IFTI-T<30THEN3680 3700 GOTO3620 3750 FORI=0TO3 3760 X=GX(I):Y=GY(I):Z=GZ(I):H=0 3770 IFZ=0THENH=H+1 3780 IFZ+1=BE(X,Y)THENH=H+2 3790 X$=W$(H):GOSUB3000 3795 NEXT:RETURN 3800 F0=INT(F/256):POKE54272,F-256*F0 3810 POKE54273,F0:POKE54276,65 3820 T=TI 3830 IFTI-T