10 print"{clr} ****noughts & crosses**** 20 print" {CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U} 30 print"{down}{down}{down}{down}{down} by d.j.wylie" 40 print"{down}{down}{down}{down}{down} press a key to start:- 50 geta$:ifa$=""then50 56 print"{clr}type difficulty rating (1-9)" 57 open1,0:input#1,di$:close1 58 di=val(di$):ifdi=<0ordi>9then56 60 print"{clr}" 70 print"{down}{down}{down}{down}" 80 print" {CBM-M} {CBM-M} 90 print" 1,1{CBM-M} 1,2{CBM-M} 1,3 100 print" {CBM-M}{$a0}{$a0}{$a0}{$a0}{CBM-M} 110 print" {CBM-T}{CBM-T}{CBM-T}P{CBM-T}{CBM-T}{CBM-T}{CBM-T}P{CBM-T}{CBM-T}{CBM-T}{CBM-T} 120 print" {CBM-M}{$a0} {CBM-M} 130 print" 2,1{CBM-M}{$a0}2,2{CBM-M} 2,3 140 print" {CBM-M} {CBM-M} 150 print" {CBM-T}{CBM-T}{CBM-T}P{CBM-T}{CBM-T}{CBM-T}{CBM-T}P{CBM-T}{CBM-T}{CBM-T}{CBM-T} 155 print" {CBM-M}{$a0} {CBM-M} 156 print" 3,1{CBM-M} 3,2{CBM-M} 3,3 160 print" {CBM-M} {CBM-M} 165 print"{home}" 170 print"do you want first move? {left}{left}{left}{left}"; 180 open1,0:input#1,a$:close1 185 print 190 ifa$="yes"then460 200 restore 201 c(4,4)=1 202 c(5,5)=2 203 fora1=1to(3*di)+6 210 reada,b,c,d,h,i 220 ifc(a,b)+c(c,d)=2andc(h,i)=0thenc(h,i)=-1:goto440 225 ifc(a,b)+c(c,d)=-2andc(h,i)=0thenc(h,i)=-1:goto440 230 next 234 data3,2,2,1,3,1 235 data3,2,2,3,3,3 240 data1,1,1,2,1,3,1,1,1,3,1,2,1,2,1,3,1,1,2,1,2,2,2,3,2,1,2,3,2,2,2,3,2,2,2,1 250 data3,1,3,2,3,3,3,1,3,3,3,2,3,3,3,2,3,1,1,1,2,1,3,1,1,1,3,1,2,1,2,1,3,1,1,1 260 data1,2,2,2,3,2,1,2,3,2,2,2,3,2,2,2,1,2,1,3,2,3,3,3,1,3,3,3,2,3,2,3,3,3,1,3 270 data1,1,2,2,3,3,1,1,3,3,2,2,2,2,3,3,1,1,3,1,2,2,1,3,3,1,1,3,2,2,1,3,2,2,3,1 280 data3,3,2,2,3,1,1,1,3,2,3,1,1,3,3,2,3,3 290 data2,3,4,4,2,2,5,5,2,2,1,2,5,5,2,2,2,2 300 data2,3,3,1,3,3 400 fora=1to3:forb=1to3 410 ifc(a,b)=0thenc(a,b)=-1:goto440 420 next:next 440 gosub640 450 gosub760 460 print"{up}what is your move? {left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left} {left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}"; 470 open1,0:input#1,a$,b$:close1 475 print 476 a=val(a$):b=val(b$) 480 ifa=int(a)andb=int(b)anda<4andb<4anda*b>0then500 490 goto460 500 ifc(a,b)<>0then460 510 c(a,b)=1 520 gosub640 530 gosub760 540 goto200 640 fora=1to3 650 forb=1to3 660 ifc(a,b)=1thenn=15:ifm(a,b)<>1thengoto710 670 ifc(a,b)=-1thenn=24:ifm(a,b)<>1thengoto710 680 next 690 next 700 return 710 form=1to3 715 m(a,b)=1 720 poke((19-((4-a)*4))*40+32770)+(5*(b))+m,32 730 next 740 poke((19-((4-a)*4))*40+32772)+(5*(b)),n 750 goto680 760 d=0:fora=1to3:d=d+c(a,a):next:gosub880 770 d=0:fora=1to3:d=d+c(a,4-a):next:gosub880 780 fora=1to3:d=0:forb=1to3:d=d+c(a,b):next:gosub880:next 790 fora=1to3:d=0:forb=1to3:d=d+c(b,a):next:gosub880:next 800 fora=1to3 810 forb=1to3 830 ifc(a,b)=0then900 840 next 850 next 860 print"{up}draw!!- " 870 goto940 880 ifd=3then910 890 ifd=-3then930 900 return 910 print"{up}you win!!! " 920 goto940 930 print"{up}i win!!-not suprising " 940 print"do you want another game? {left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}"; 950 open1,0:input#1,a$:close1 960 ifa$="yes"thenclr:goto56 965 print"{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}" 970 print"program now over" 980 print"goodbye!!"