start tok64 othello.prg 1 POKE53280,.:POKE53281,.:PRINT"{clear}{down*5}{right*3}{white}(c){light blue} 1979 {yellow}luxor {green}(abc-80) 2 PRINT"{down*4}{right*3}{white}(c) {light blue}1991 {yellow}softwolves software/mr.p. 3 PRINT,,"{left*2}{blue}f{pound}r c-64 versionen 4 PRINT"{home}{down*24}{space*3}{white}{reverse on} tryck mellanslag {reverse off}{home} 7 PRINT"{home}{right*5}--o--t--h--e--l--l--o--6--4-- 8 IFPEEK(198)=.THENPOKE646,(PEEK(646)+1)AND15:GOTO7 9 GETb$ 10 REM (c) 1979 luxor 20 REM (c) 1991 softwolves software 30 REM /mr.p. 39 d$="{home}{down*24}":DIMa(9,9) 40 POKE53280,5:POKE53281,5 50 GOSUB 2730:REM br[det 60 REM 70 PRINTLEFT$(d$,23)"{light green}beh{pound}ver du instruktioner?{home} 80 GET x$ 90 IF x$="n" THEN 270 100 IF x$<>"j" THEN 80 110 PRINT"{clear}{white}"TAB(16)"othello"TAB(56)"{cm y*7} 115 PRINT"{clear}{light green}othello spelas p] en plan med 8x8 rutor,"; 120 PRINT"rad {white}1{light green}-{white}8 {light green}och kolumn {white}a{light green}-{white}h{light green}. man startar all- 130 PRINT"tid med detta m{pound}nster:{down} 140 PRINTTAB(19)"{black}Q{white}Q" 150 PRINTTAB(19)"{white}Q{black}Q" 160 PRINT"{down}{right}{light green}vi turas om att l[gga en pj[s var. n[r 170 PRINT"an lagt ut en pj[s f]r man alla motspe- 180 PRINT"larens pj[ser mellan ens egna och den 190 PRINT"utlagda pj[sen.{down} 200 PRINT"{right}obs! man m]ste 'ta' minst en av mot- 210 PRINT"spelarens pj[ser varje g]ng, annars m]s-"; 220 PRINT"te man st] {pound}ver draget. (det g{pound}r man 230 PRINT"{right}genom att svara '{white}a0{light green}')" 232 PRINT"{down}{right}man kan, om man vill, mitt i spelet 233 PRINT"byta f[rger p] planen. skriv d]: '{white}bf{light green}' 234 PRINT"(st]r f{pound}r {white}b{light green}yta {white}f{light green}[rg{.*3}) 240 PRINTLEFT$(d$,23)"{white}tryck n[r du l[st klart{home} 250 GET a$:IF a$="" THEN 250 260 GOSUB 2730 270 RESTORE :PRINTLEFT$(d$,23)"{black}ska jag spela efter b[sta f{pound}rm]ga? {left}"; 290 s2=0 300 GET x$:PRINTx$; 310 IF x$="n" THEN 340 320 IF x$<>"j" THEN 270 330 s2=2 340 b=-1 350 w=1 360 d$(b+1)="{white}Q" 370 d$(1)=" " 380 d$(w+1)="{black}Q" 390 FOR k=1 TO 8 400 READ i4(k) 410 NEXT k 420 DATA 0,-1,-1,-1,0,1,1,1 430 FOR k=1 TO 8 440 READ j4(k) 450 NEXT k 460 DATA 1,1,0,-1,-1,-1,0,1 470 FOR k=1 TO 8 480 READ c$(k) 490 NEXT k 500 DATA a,b,c,d,e,f,g,h 510 PRINT 520 FOR i=0 TO 9 530 FOR j=0 TO 9 540 a(i,j)=0 550 NEXT j,i 560 a(4,4)=w 570 a(5,5)=w 580 a(4,5)=b 590 a(5,4)=b 600 c1=2 610 h1=2 620 n1=4 630 z=0:PRINTLEFT$(d$,23)"{space*39}{home} 640 PRINTLEFT$(d$,23)"{light green}vill du ha {white}(v)it {light green}eller {black}(s)vart?{home} 650 c=w:cc$="{black}" 660 h=b:hh$="{white}" 670 GET x$ 680 IF x$="v"THEN 720 690 IF x$<>"s" THEN 670 700 c=b:cc$="{white}" 710 h=w:hh$="{black}" 720 PRINTLEFT$(d$,23)"{light green}vill du dra f{pound}rst?{space*21}{home} 730 GETx$ 731 IFx$<>""THENPRINTLEFT$(d$,23)"{space*39}{home} 740 IF x$="n" THEN GOSUB 2660:GOTO 790 750 IF x$<>"j" THEN 720 760 GOSUB 2660 770 GOTO 1270 790 PRINTcc$"{home}jag t[nker{.*3} " 810 b1=-1 820 i3=0:j3=0 830 t1=c 840 t2=h 850 FORi9=1TO8:FORj9=1TO8:i=i9:j=j9 870 IF a(i9,j9)<>0 THEN 1040 880 GOSUB 2330 890 IF f1=0 THEN 1040 900 u=-1 910 GOSUB 2410 920 IF s1=0 THEN 1040 930 IF (i9-1)*(i9-8)<>0 THEN 950 940 s1=s1+s2 950 IF (j-1)*(j-8)<>0 THEN 970 960 s1=s1+s2 970 IF s1b1 THEN 1010 990 r=RND(.):IF (i=1 OR i=8) AND (j=1 OR j=8) THEN i3=i:j3=j:b1=s1:GOTO 1060 1000 IF r>.5 THEN 1040 1010 b1=s1 1020 i3=i 1030 j3=j 1040 NEXTj9,i9 1060 IF b1>0 THEN 1120 1070 PRINTcc$LEFT$(d$,23)"{space*39}{home} 1080 PRINT"{home}jag st]r {pound}ver." 1090 IF z=1 THEN 1860 1100 z=1 1110 GOTO 1270 1120 z=0 1130 PRINTcc$"{home}mitt drag:{space*2}"; 1140 PRINTc$(j3); 1150 PRINTCHR$(i3+48) 1160 i=i3 1170 j=j3 1180 u=1 1190 GOSUB 2410 1200 c1=c1+s1+1 1210 h1=h1-s1 1220 n1=n1+1 1230 PRINTLEFT$(d$,23)"jag tog"s1"{left} av dina pj[ser!!{space*15}"; 1240 GOSUB2660:q9=-1:GOSUB1880 1250 IF h1=0 THEN GOTO1860 1260 IF n1=64 THEN GOTO1860 1270 t1=h 1280 t2=c 1290 PRINThh$"{home}{down}{space*22}" 1310 INPUT"{home}{down}ditt drag ";z$ 1311 IFz$<>"bf"THEN1320 1312 FORx=1TO8:FORy=1TO8 1313 IFa(x,y)=bTHENa(x,y)=w:GOTO1315 1314 IFa(x,y)=wTHENa(x,y)=b 1315 NEXT:NEXT:x=c1:c1=h1:h1=x:GOSUB2660:q9=-1:GOSUB1880:GOTO790 1320 IF LEN(z$)<>2 THEN 1350 1330 z1=ASC(z$):z2=ASC(RIGHT$(z$,1)) 1340 IF(z1>47ANDz1<57ANDz2>64ANDz2<73)OR(z1>64ORz1<73ORz2>47ORz2<57)THEN1360 1350 PRINT"{home}{down*2}{light green}fel - f{pound}rs{pound}k igen.{space*4}":PRINT"{space*15}":GOTO1290 1360 IF z1>57 THENi=z2-48:x$=CHR$(z1):GOTO1390 1370 i=z1-48 : x$=CHR$(z2) 1390 IF i<0ORi>8 THEN 1310 1410 IF i<>0 THEN 1520 1420 PRINT"{home}{down*3}{space*15}" 1430 PRINT"{home}{down*2}{light green}{space*22}" 1450 INPUT"{home}{down*2}avst]r du? j{left*3}";x$:x$=LEFT$(x$,1) 1460 PRINT"{home}{down*2}{space*14}" 1461 PRINThh$"{home}{down} du st]r {pound}ver. 1462 PRINTLEFT$(d$,24)"{space*39}{home} 1470 IF x$="" THEN 1430 1480 IF x$<>"j" THEN 1290 1490 IF z=1 THEN 1860 1500 z=1 1510 GOTO 790 1520 PRINT"{home}{down*2}{space*22}" 1530 FOR j=1 TO 8 1540 IF c$(j)=x$ THEN 1570 1550 NEXT j 1560 GOTO 1310 1570 IF a(i,j)=0 THEN 1610 1580 PRINT"{home}{down*2}{light green}upptagen ruta" 1590 PRINT"-f{pound}rs{pound}k igen." 1600 GOTO 1290 1610 GOSUB 2330 1620 IF f1=1 THEN 1660 1630 PRINT"{home}{down*2}{light green}ej bredvid mina pj[ser" 1640 PRINT"{home}{down*3}-f{pound}rs{pound}k igen." 1650 GOTO 1290 1660 u=-1 1670 GOSUB 2410 1680 IF s1>0 THEN 1730 1690 PRINT"{home}{down*2}{light green}du kan ej v[nda n]gra" 1700 PRINT"-f{pound}rs{pound}k igen." 1710 GOTO 1290 1730 z=. 1740 PRINT"{home}{down*2}{space*22}" 1750 PRINT"{home}{down*3}{space*22}" 1760 PRINThh$LEFT$(d$,24)" du tog"s1"{left} av mina pj[ser{space*14}{home} 1770 u=1 1780 GOSUB 2410 1790 h1=h1+s1+1 1800 c1=c1-s1 1810 n1=n1+1 1820 GOSUB 2660:q9=-1:GOSUB1880 1830 IF c1=0 THEN GOTO1860 1840 IF n1=64 THEN GOTO1860 1850 GOTO 790 1860 PRINTLEFT$(d$,23)"{space*39}" 1870 PRINT"{up}{space*39}{home}":q9=. 1880 PRINT"{home}{down*4}{light green}du :"hh$h1"{left} st " 1900 PRINT"{light green}jag:"cc$c1"{left} st {light green} 1921 IFq9=-1THENRETURN 1930 IF h1=c1 THEN 1970 1940 IF h1>c1 THEN 1990 1950 PRINT "jag vann!" 1960 GOTO 2000 1970 PRINT "oavgjort!!" 1980 GOTO 2190 1990 PRINT "du vann." 2000 c1=c1-h1 2010 IF c1>0 THEN 2030 2020 c1=-c1:PRINT"{white} 2030 c1=(64*c1)/n1 2040 IF c1<11 THEN 2180 2050 IF c1<25 THEN 2160 2060 IF c1<39 THEN 2140 2070 IF c1<53 THEN 2110 2080 PRINT "perfekt parti !"; 2100 GOTO 2190 2110 PRINT "skapligt spelat !"; 2130 GOTO 2190 2140 PRINT "bra fight"; 2150 GOTO 2190 2160 PRINT "skickligt!"; 2170 GOTO 2190 2180 PRINT "fusk !!"; 2190 PRINTLEFT$(d$,23)"ett spel till ?{home} 2210 GET x$:IF x$="n" THEN 2320 2220 IF x$<>"j" THEN 2210 2310 RUN10 2320 SYS64738 2330 FOR i1=-1 TO 1 2340 FOR j1=-1 TO 1 2350 IF a(i+i1,j+j1)=t2 THEN 2390 2360 NEXT j1,i1 2370 f1=0 2380 RETURN 2390 f1=1 2400 RETURN 2410 s1=0 2420 FOR k=1 TO 8 2430 i5=i4(k) 2440 j5=j4(k) 2450 i6=i+i5 2460 j6=j+j5 2470 s3=0 2480 IF a(i6,j6)<>t2 THEN 2640 2490 s3=s3+1 2500 i6=i6+i5 2510 j6=j6+j5 2520 IF a(i6,j6)=t1 THEN 2550 2530 IF a(i6,j6)=0 THEN 2640 2540 GOTO 2490 2550 s1=s1+s3 2560 IF u<>1 THEN 2640 2570 i6=i 2580 j6=j 2590 FOR k1=0 TO s3 2600 a(i6,j6)=t1 2610 i6=i6+i5 2620 j6=j6+j5 2630 NEXT k1 2640 NEXT k 2650 RETURN 2660 PRINTLEFT$(d$,5):FORi=1TO8:PRINTTAB(22):FORj=1TO8 2670 PRINTd$(a(i,j)+1)"{right}";:NEXT:PRINT:PRINT:NEXT:RETURN 2730 PRINT "{light green}{clear}"; 2740 PRINTLEFT$(d$,21)TAB(21)"{cm z}{sh asterisk}{cm e}{sh asterisk}{cm e}{sh asterisk}{cm e}{sh asterisk}{cm e}{sh asterisk}{cm e}{sh asterisk}{cm e}{sh asterisk}{cm e}{sh asterisk}{cm x} 2741 PRINTTAB(22)"{white}a b c d e f g h{light green} 2742 PRINTLEFT$(d$,5)TAB(21)"{cm a}{sh asterisk}{cm r}{sh asterisk}{cm r}{sh asterisk}{cm r}{sh asterisk}{cm r}{sh asterisk}{cm r}{sh asterisk}{cm r}{sh asterisk}{cm r}{sh asterisk}{cm s} 2750 FORr=5TO19STEP2:a$=CHR$(48+(r/2)-1) 2751 PRINTTAB(20)"{white}"a$"{light green}{sh -} {sh -} {sh -} {sh -} {sh -} {sh -} {sh -} {sh -} {sh -}{white}"a$:IFr>18THEN2770 2760 PRINTTAB(21)"{light green}{cm q}{sh asterisk}{sh +}{sh asterisk}{sh +}{sh asterisk}{sh +}{sh asterisk}{sh +}{sh asterisk}{sh +}{sh asterisk}{sh +}{sh asterisk}{sh +}{sh asterisk}{cm w} 2770 NEXT 2785 PRINT"{home}"TAB(21)"{down*3}{reverse on}{cm j}othello (c)mr.p{cm l} 2820 RETURN 2830 REM *** end *** stop tok64 (bastext 1.1)