home *** CD-ROM | disk | FTP | other *** search
- 5 gosub30000:rem titel
- 10 gosub20000:rem init
- 1000 gosub12000:rem spielfeld
- 1010 ifwn=2then1600
- 1100 z=z+1
- 1200 gosub10000:rem computerzug
- 1300 gosub4500:rem gewonnen?
- 1400 ifgw=1thenz5$="c64":cw=cw+1:gosub14000:goto3000
- 1500 ifv=1then4000
- 1510 wn=2
- 1600 z=z+1
- 1700 gosub13000:rem spielerzug
- 1800 gosub4500:rem gewonnen?
- 1900 ifgw=1thenz5$="spieler":sw=sw+1:gosub15000:goto3000
- 2000 ifv=1then4000
- 2010 wn=1
- 2100 goto1100
- 3000 ze=20:sp=0:gosub11000:printz3$
- 3010 gosub11000
- 3020 print"gewonnen hat der ";z5$
- 3050 fori=1to9:bt(i)=0:tp(i)=0:next
- 3060 p=0
- 3070 getx$:ifx$=""then3070
- 3080 goto1000
- 4000 ze=20:sp=0:gosub11000:printz3$
- 4010 gosub11000
- 4020 print"unentschieden"
- 4030 uw=uw+1
- 4035 gosub14000
- 4040 goto3050
- 4500 ge=0:g1(1)=bt(1)+bt(2)+bt(3)
- 4510 g1(2)=bt(4)+bt(5)+bt(6)
- 4520 g1(3)=bt(7)+bt(8)+bt(9)
- 4530 g1(4)=bt(1)+bt(4)+bt(7)
- 4540 g1(5)=bt(2)+bt(5)+bt(8)
- 4550 g1(6)=bt(3)+bt(6)+bt(9)
- 4560 g1(7)=bt(1)+bt(5)+bt(9)
- 4570 g1(8)=bt(3)+bt(5)+bt(7)
- 4580 fori=1to8:ifg1(i)=3org1(i)=-3thengw=1
- 4590 next
- 4600 v=1
- 4610 fori=1to9
- 4620 ifbt(i)=0thenv=0
- 4630 next
- 4640 return
- 5000 print"[147]"
- 5010 ze=10:sp=1:gosub11000
- 5020 print"[150]mehr spiele kann ich mir nicht merken!"
- 5030 ze=13:sp=7:gosub11000
- 5040 print"bitte neu starten (taste)"
- 5050 getx$:ifx$=""then5050
- 5060 run10
- 10000 z4$="[154]x":pf=0:gf=0
- 10005 fora=1to9
- 10010 ifbt(a)<>0then10160
- 10012 pf=a
- 10020 iffs=0thenpf=0:gosub10200:goto10160: rem naechstmoeglichen zug
- 10030 gosub10300:rem naechsten zug suchen
- 10040 ifgn=1thengosub10200:goto10160
- 10160 next
- 10162 ifpf>0thengosub10500:goto10190
- 10170 ifa>=15thenv=0:goto10190
- 10180 ifa>=9thenv=1
- 10190 return
- 10200 ze=kw(a,0):sp=kw(a,1)+1
- 10210 gosub11000:rem cursor setzen
- 10220 printz4$
- 10230 p=p+za(a):tp(z)=p:bt(a)=1
- 10240 a=15
- 10250 return
- 10300 p1=p+za(a)
- 10310 fori=1tofs
- 10320 iff(i,z,0)=p1thengosub10360:goto10340
- 10330 gn=1
- 10340 next
- 10350 return
- 10360 iff(i,z,1)=0thenmk=i:gn=1:goto10380
- 10370 gn=0
- 10380 i=fs+10
- 10390 return
- 10500 ifa>=15then10850
- 10560 z1=z-2:ifz1<=0then10820
- 10570 p1=tp(z1):ab=0
- 10580 fori=1tofs
- 10590 iff(i,z1,0)=p1thenf(i,z1,1)=1:ab=1
- 10600 next
- 10820 fora=1to9
- 10830 ifbt(a)=0thengosub10200
- 10840 next
- 10842 ifab=0then10850
- 10845 gf=1
- 10850 return
- 11000 pokecs,sp:pokecz,ze:pokecp,0:syssc
- 11010 return
- 12000 iffs>=dfthen5000
- 12008 z=0
- 12010 z1$="[158] [221] [221]"
- 12020 z2$=" [192][192][192][219][192][192][192][219][192][192][192]"
- 12030 z3$=" "
- 12040 print"[147]"
- 12050 fori=1to3:printz1$:next
- 12060 printz2$
- 12070 fori=1to3:printz1$:next
- 12080 printz2$
- 12090 fori=1to3:printz1$:next
- 12100 fori=1to9:ze=kw(i,0):sp=kw(i,1)
- 12110 gosub11000
- 12120 printi:next
- 12130 ze=20:sp=0:gosub11000
- 12140 wn=1
- 12170 printz4$
- 12190 ze=20:sp=0:gosub11000
- 12200 printz3$
- 12210 gs=cw+sw+uw
- 12220 ze=1:sp=23:gosub11000
- 12230 print"[150]spiele ges.:";"[155]"gs
- 12240 ze=4:sp=23:gosub11000
- 12250 print"[150]davon gewonnen:"
- 12272 ze=7:sp=23:gosub11000
- 12274 print"c64: ";"[155]"cw
- 12280 ze=8:sp=23:gosub11000
- 12290 print"[150]spieler: ";"[155]"sw
- 12300 ze=11:sp=23:gosub11000
- 12310 print"[150]unentsch.: ";"[155]"uw
- 12320 return
- 13000 ze=20:sp=0:gosub11000
- 13010 printz3$:gosub11000
- 13020 print"welches feld? ";
- 13030 getx$:ifx$=""then13030
- 13040 ifasc(x$)<49orasc(x$)>57then13030
- 13050 x=asc(x$)-48
- 13060 ifbt(x)=0then13120
- 13070 ze=20:sp=0:gosub11000
- 13080 printz3$:gosub11000
- 13090 print"feld ist schon besetzt!! (taste) ";
- 13100 getx$:ifx$=""then13100
- 13110 goto13000
- 13120 bt(x)=-1:z4$="[209]"
- 13130 p1=za(x)*2:p=p+p1
- 13140 tp(z)=p
- 13150 ze=kw(x,0):sp=kw(x,1)+1
- 13160 gosub11000
- 13170 printz4$
- 13180 return
- 14000 gw=0
- 14008 ifgf=1thengf=0:goto14050
- 14010 fs=fs+1
- 14020 fori=1to9
- 14030 f(fs,i,0)=tp(i)
- 14040 next
- 14050 return
- 15000 gw=0
- 15008 ifgf=1thengf=0:goto16000
- 15010 fs=fs+1
- 15020 z=z-1
- 15030 fori=1to9
- 15040 f(fs,i,0)=tp(i)
- 15050 next
- 15060 f(fs,z,1)=1
- 15070 fori=1tofs
- 15080 iff(i,z,0)=tp(z)thenf(i,z,1)=1
- 15090 next
- 16000 return
- 20000 df=100
- 20010 dimf(df,9,1),kw(9,1)
- 20030 cs=782:cz=781:sc=65520:fs=0:cp=783
- 20040 kw(1,0)=2:kw(1,1)=9:kw(2,0)=2:kw(2,1)=13:kw(3,0)=2:kw(3,1)=17
- 20050 kw(4,0)=6:kw(4,1)=9:kw(5,0)=6:kw(5,1)=13:kw(6,0)=6:kw(6,1)=17
- 20060 kw(7,0)=10:kw(7,1)=9:kw(8,0)=10:kw(8,1)=13:kw(9,0)=10:kw(9,1)=17
- 20070 za(1)=1
- 20080 fori=2to9:za(i)=za(i-1)*3:next
- 25000 return
- 30000 ifpeek(50307)=120thenpoke50257,0
- 30010 printchr$(147)chr$(14)chr$(8);
- 30020 poke53280,0:poke53281,0
- 30030 rv$=" "
- 30040 print"[154]";rv$;" [196]as selbstlernende [212]ic-[212]ac-[212]oe ";rv$;
- 30050 print" (c) [201][206][208][213][212]64 (w) [203].-[198]. [208]robst ";rv$
- 30060 print:print"[159][213]m '[211]elbstlernende [208]rogramme' werden"
- 30070 print"viele grosse [215]orte gemacht. [196]ass dies"
- 30080 print"sogar mit kleinen [194][193][211][201][195]-[208]rogrammen"
- 30090 print"geht, zeigt dieses [211]piel.":print
- 30095 print"[196]as [208]rogramm versucht, aus seinen [198]eh-"
- 30100 print"lern zu lernen und die [218]uege nicht zu"
- 30110 print"wiederholen, mit denen es verloren hat."
- 30120 print"([193]uf '[211]ieg' zu spielen, ist bei diesem"
- 30130 print"[211]piel theoretisch unsinnig, weil es "
- 30140 print"bei richtiger [211]pielweise beider [211]pieler"
- 30150 print"nur ein '[213]nentschieden' geben kann.)"
- 30160 print
- 30170 print"[196]er [197]infachheit halber beginnt immer"
- 30180 print"der [195]omputer.":print
- 30190 print:print"[154][211]tart mit irgendeiner [212]aste!";
- 30195 poke198,0
- 30200 getw$:ifw$=""then30200
- 30210 printchr$(147)chr$(142):return
-