10 REM ********************
20 REM * * 30 REM * Solitaire * 40 REM * by * 50 REM * Marion * 60 REM * Clarke * 70 REM * * 80 REM ******************** 90 ' 100 ENV 1,15,-1,9:ENT -1,135,-1,1 110 SYMBOL AFTER 225:SYMBOL 225,0,0,0,0,0,0,0,0:SYMBOL 250,90,165,90,165,165,90,165,90 120 DIM a$(13),b$(13),c$(4):FOR a=1 TO 13:READ a$(a):NEXT:FOR a=1 TO 13:READ b$(a):NEXT:FOR a=1 TO 4:READ c$(a):NEXT 130 d$=" EA234567890JQK" 140 DATA " A"," 2"," 3"," 4"," 5"," 6"," 7"," 8"," 9","10"," J"," Q"," K" 150 DATA "Ace","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Jack","Queen","King" 160 DATA "Clubs","Diamonds","Hearts","Spades" 170 DATA "1 - Klondyke","2 - Spaces","3 - Accordion","4 - Poker Solitaire","5 - End" 180 CALL &BC02:PAPER 0:PEN 1:MODE 1:RESTORE 170:FOR a=0 TO 4:READ z$:LOCATE 13,a*2+8:PRINT z$:NEXT:WHILE INKEY$<>"":WEND 190 z$=UPPER$(INKEY$):IF z$="" THEN 190 ELSE a=INSTR("12345",z$):IF a=0 THEN 190 ELSE IF a=5 THEN CALL &BC02:PAPER 0:PEN 1:CLS:END 200 PAPER #2,0:WINDOW #2,2,39,2,24:PAPER #1,0:PEN #1,1 210 e=0 220 ON a GOSUB 440,850,1210,1520 230 ON z GOTO 240,260,270,280 240 CLS #1:LOCATE #1,1,1:PRINT #1,"End game";:LOCATE #1,1,3:PRINT #1,"Are you";:LOCATE #1,2,4:PRINT #1,"sure?";:WHILE INKEY$<>"":WEND 250 z$=UPPER$(INKEY$):IF z$="" THEN 250 ELSE IF z$="Y" THEN 280 ELSE IF z$="N" THEN 220 ELSE SOUND 2,600:GOTO 250 260 CLS #1:LOCATE #1,1,2:PRINT #1,"YOU WIN!";:FOR x=150 TO 25 STEP -1:SOUND 2,x,2:NEXT:GOTO 280 270 CLS #1:LOCATE #1,1,2:PRINT #1,"You lose";:FOR x=50 TO 150:SOUND 2,x,2:NEXT:GOTO 280 280 LOCATE #1,1,3:PRINT #1,CHR$(20):LOCATE #1,2,4:PRINT #1,"Again?":WHILE INKEY$<>"":WEND 290 z$=UPPER$(INKEY$):IF z$="" THEN 290 ELSE IF z$<>"Y" AND z$<>"N" THEN 290 ELSE ON a GOSUB 300,300,310,300:IF z$="Y" THEN 210 ELSE GOTO 180 300 ERASE i,j 310 ERASE f,g,h:RETURN 320 INK 0,9:INK 1,0:INK 2,6:INK 3,26:PAPER 0:BORDER 13:CLS 330 PLOT 0,0,1:DRAW 638,0:DRAW 638,398:DRAW 0,398:DRAW 0,0 340 PEN 1:LOCATE 16,24:PRINT "Shuffling"; 350 DIM f(f):FOR b1=1 TO f:f(b1)=b1:NEXT 360 FOR b1=1 TO f*3:b2=RND*(f-1)+1:b3=RND*(f-1)+1:b4=f(b2):f(b2)=f(b3):f(b3)=b4:NEXT:CLS #2:RETURN 370 WHILE INKEY$<>"":WEND 380 u$=UPPER$(INKEY$):IF u$="" THEN 380 ELSE IF u$=CHR$(127) THEN SOUND 2,400,10:u=0:RETURN ELSE IF u$="1" THEN u$="0" 390 u=INSTR(d$,u$):IF u=0 THEN SOUND 2,600:GOTO 380 ELSE IF u=1 OR u=2 THEN SOUND 2,250,2:u=0:RETURN 400 u=u-2:LOCATE #1,1,e1:PRINT #1,b$(u);" of ";:SOUND 2,250,2:WHILE INKEY$<>"":WEND 410 v$=UPPER$(INKEY$):IF v$="" THEN 410 ELSE IF v$=CHR$(127) THEN SOUND 2,400,10:v=0:RETURN 420 v=INSTR(" ECDHS",v$):IF v=0 THEN SOUND 2,600:GOTO 410 ELSE IF v=1 OR v=2 THEN SOUND 2,250,2:v=0:RETURN 430 v=v-2:LOCATE #1,1,e1+1:PRINT #1,c$(v);:SOUND 2,400,2:RETURN 440 z=0:IF e=1 THEN 490 ELSE e=1:f=52:GOSUB 320:WINDOW #1,31,39,14,18 450 DIM g(52),h(126),i(4),j(12) 460 h1=0:w1=52:FOR y=2 TO 8:FOR x=y*4-6 TO 26 STEP 4:w=f(w1):GOSUB 800:g(f(w1))=(y-2)*7+(x-2)‡ 4+1:h(g(f(w1)))=f(w1):IF h1=1 THEN g(f(w1))=0-g(f(w1)) 470 w1=w1-1:h1=1:NEXT:h1=0:NEXT:x=36:y=20:w=f(22):GOSUB 800:h1=1:x=31:GOSUB 800 480 h2=7:f1=22:f2=24:FOR t=1 TO 4:i(t)=0:NEXT 490 IF z<>0 THEN RETURN ELSE e1=1:CLS #1:SOUND 2,100,3:GOSUB 370 500 IF u=0 OR v=0 THEN IF u$=CHR$(127) OR v$=CHR$(127) THEN SOUND 2,600:GOTO 490 ELSE IF u$=" " OR v$=" " THEN GOSUB 610:GOTO 490 ELSE RETURN 510 u1=u:v1=v:w1=(v-1)*13+u:IF g(w1)>0 THEN k1=1:g1=g(w1)-((g(w1)-1)‡ 126)*126 ELSE IF f(f1)=w1 THEN k1=2 ELSE SOUND 2,600:GOTO 490 520 IF u1=1 THEN k2=2:GOTO 580 ELSE IF u1<13 THEN 530 ELSE FOR g2=1 TO 7:IF h(g2)=0 THEN k2=1:g2=g2-7:GOTO 580 ELSE NEXT:SOUND 2,600:GOTO 490 530 LOCATE #1,4,3:PRINT #1,"to";:e1=4:GOSUB 370 540 IF u=0 OR v=0 THEN IF u$=CHR$(127) OR v$=CHR$(127) THEN SOUND 2,600:GOTO 490 ELSE IF u$=" " OR v$=" " THEN GOSUB 610:GOTO 490 ELSE RETURN 550 w2=(v-1)*13+u:IF g(w2)>0 AND g(w2)<127 THEN k2=1:g2=g(w2) ELSE IF i(v)=u THEN k2=2 ELSE SOUND 2,600:GOTO 490 560 IF (k2=1 AND (u<>u1+1 OR v=v1 OR v+v1=5)) OR (k2=2 AND (u1<>u+1 OR v1<>v)) THEN SOUND 2,600:GOTO 490 570 IF k1=1 AND k2=2 THEN IF g(w1)<1 OR g(w1)>126 THEN SOUND 2,600:GOTO 490 580 t1=0:IF k1=1 THEN GOSUB 670 ELSE GOSUB 690 590 IF k2=1 THEN GOSUB 730 ELSE GOSUB 770 600 IF h2=52 THEN z=2:RETURN ELSE GOTO 490 610 t3=0:IF t1=0 THEN t2=f1:t1=1 620 IF f1=0 THEN RETURN ELSE y=20:CLS #1:LOCATE #1,3,3:PRINT #1,"twist";:FOR f3=f1-1 TO f1-3 STEP -1:s=f3:WHILE s<1:s=s+f2:WEND:IF s=f2 THEN x=31:h1=1:GOSUB 800 630 x=36:h1=0:w=f(s):GOSUB 800:IF s=1 THEN x=31:h1=2:GOSUB 800 640 IF t2=s THEN t3=1 650 NEXT:IF t3=1 THEN t1=t1+1:IF t1=4 THEN z=3:RETURN 660 f1=f1-3:WHILE f1<1:f1=f1+f2:WEND:RETURN 670 j=0:WHILE h(g1+j*7)<>0:j(j+1)=h(g1+j*7):h(g1+j*7)=0:j=j+1:g(j(j))=0:WEND:IF g1>7 THEN w=h(g1-7):IF g(w)<0 THEN g(w)=ABS(g(w)):h2=h2+1 ELSE g(w)=g(w)-126 680 r=(g1-1)‡ 7+2:x=((g1-1) MOD 7)*4+2:PLOT (x-1)*16,(26-r)*16,0:DRAWR 62,0:PAPER 0:FOR y=r TO r+j+3:LOCATE x,y:PRINT SPACE$(4):NEXT:IF g1<8 THEN RETURN ELSE y=r-1:h1=0:GOSUB 800:RETURN 690 y=20:f3=f1 700 WHILE f3<f2:f(f3)=f(f3+1):f3=f3+1:WEND:f2=f2-1:IF f2=0 THEN x=36:GOTO 710 ELSE IF f1>f2 THEN f1=1:x=31:GOTO 710 ELSE GOTO 720 710 y=20:h1=2:GOSUB 800 720 w=f(f1):h2=h2+1:j=1:j(1)=w1:IF f2=0 THEN RETURN ELSE x=36:h1=0:GOSUB 800:RETURN 730 IF g2>0 THEN x=((g2-1) MOD 7)*4+2 ELSE x=g2*4+26 740 h1=0:FOR j1=1 TO j:h(g2+j1*7)=j(j1):g(j(j1))=g2+j1*7:IF j1<j THEN g(j(j1))=g(j(j1))+126 750 IF g2<1 THEN y=j1+1 ELSE y=(g2-1)‡ 7+j1+2 760 w=j(j1):GOSUB 800:NEXT:IF g2>0 THEN g(w2)=g(w2)+126:RETURN ELSE RETURN 770 IF (v1 MOD 2)=0 THEN x=36 ELSE x=31 780 IF v1<3 THEN y=8 ELSE y=2 790 w=w1:h1=0:GOSUB 800:i(v1)=i(v1)+1:RETURN 800 IF h1=2 THEN PAPER 0:PLOT (x-1)*16,(26-y)*16,0:DRAWR 62,0 ELSE PAPER 3:PEN 1 810 FOR r=y TO y+4:LOCATE x,y:IF h1<>1 THEN PRINT SPACE$(4);ELSE PRINT STRING$(4,CHR$(250)); 820 NEXT:IF h1=2 THEN RETURN ELSE IF h1=1 THEN 840 ELSE IF (w-1)‡ 13=0 OR (w-1)‡ 13=3 THEN PEN 1 ELSE PEN 2 830 z$=a$(((w-1) MOD 13)+1)+CHR$((w-1)‡ 13+226):LOCATE x,y:PRINT MID$(z$,INSTR(z$," ")+1);:LOCATE x+1,y+4:PRINT z$; 840 PLOT (x-1)*16,(26-y)*16,1:DRAWR 62,0:DRAWR 0,-80:DRAWR -62,0:DRAWR 0,80:RETURN 850 e1=3:z=0:IF e=1 THEN 890 ELSE e=1:f=52:GOSUB 320:WINDOW #1,16,25,21,24 860 DIM g(52),h(56),i(4),j(4) 870 k=1:LOCATE 18,2:PRINT"Deal 1";:FOR x=1 TO 56:h(x)=0:NEXT:w=1:FOR x=1 TO 4:FOR y=2 TO 14:p=(x-1)*14+y:g(f(w))=p:h(p)=f(w):w=w+1:GOSUB 1090:NEXT:NEXT 880 p=1:FOR x=1 TO 40 STEP 13:h(p)=h(g(x)):h(g(x))=0:n=g(x):g(x)=p:GOSUB 1070:GOSUB 1090:p=p+14:NEXT:FOR x=1 TO 4:i(x)=1:NEXT:u=0:GOSUB 1150 890 IF z>0 THEN RETURN ELSE IF q=4 THEN q=0:IF k<3 THEN GOSUB 940:GOTO 890 ELSE z=3:RETURN 900 CLS #1:LOCATE #1,3,1:PRINT #1,"Next";:SOUND 2,100,3:GOSUB 370 910 IF u=0 OR v=0 THEN IF u$=CHR$(127) OR v$=CHR$(127) THEN SOUND 2,600:GOTO 890 ELSE IF u$=" " OR v$=" " THEN q=4:GOTO 890 ELSE z=1:RETURN 920 m=(v-1)*13+u:p=g(m-1):IF (p MOD 14)=0 THEN SOUND 2,600:GOTO 890 ELSE IF h(p+1)<>0 THEN SOUND 2,600:GOTO 890 930 n=g(m):p=p+1:h(p)=h(n):h(n)=0:g(m)=p:GOSUB 1070:GOSUB 1090:GOSUB 1150:GOTO 890 940 SOUND 2,100,10:SOUND 2,0,10:SOUND 2,100,6:SOUND 2,0,4:SOUND 2,250,16 950 CLS #1:PAPER 0:PEN 1:k=k+1:LOCATE 22,2:PRINT k;:w=0:FOR x=1 TO 4:j(x)=i(x)+1:FOR y=j(x) TO 14:n=(x-1)*14+y:IF h(n)<>0 THEN w=w+1:f(w)=h(n):h(n)=0:GOSUB 1070 960 NEXT:NEXT:WHILE w>0:x=15 970 IF j(1)>j(2) OR j(1)>j(3) OR j(1)>j(4) THEN x=x-8 980 IF j(2)>j(3) OR j(2)>j(4) OR j(2)>j(1) THEN x=x-4 990 IF j(3)>j(4) OR j(3)>j(1) OR j(3)>j(2) THEN x=x-2 1000 IF j(4)>j(1) OR j(4)>j(2) OR j(4)>j(3) THEN x=x-1 1010 IF x>7 THEN y=1:GOSUB 1060:x=x-8 1020 IF x>3 THEN y=2:GOSUB 1060:x=x-4 1030 IF x>1 THEN y=3:GOSUB 1060:x=x-2 1040 IF x>0 THEN y=4:GOSUB 1060 1050 WEND:RETURN 1060 j(y)=j(y)+1:p=(y-1)*14+j(y):h(p)=f(w):g(f(w))=p:w=w-1:GOSUB 1090:RETURN 1070 PAPER 0:r=((n-1)‡ 14+1)*4:s=((n-1) MOD 14)*2+7 1080 FOR t=r TO r+2:LOCATE s,t:PRINT" ";:NEXT:RETURN 1090 PAPER 3:q=h(p)-1:IF q‡ 13=0 OR q‡ 13=3 THEN PEN 1 ELSE PEN 2 1100 r=((p-1)‡ 14+1)*4:s=((p-1) MOD 14)*2+7 1110 FOR t=r TO r+2:LOCATE s,t:PRINT" ";:NEXT 1120 LOCATE s,r:PRINT MID$(a$((q MOD 13)+1),INSTR(a$((q MOD 13)+1)," ")+1); 1130 LOCATE s+1,r+2:PRINT CHR$(q‡ 13+226); 1140 PLOT s*16-16,415-r*16,1:DRAWR 30,0:DRAWR 0,-46:DRAWR -30,0:DRAWR 0,46:RETURN 1150 IF u=0 THEN 1180 ELSE x=0:IF u+x>13 THEN RETURN 1160 IF p=(v-1)*14+u+x AND i(v)=u-1 THEN i(v)=i(v)+1:x=x+1:IF u+x<14 THEN 1160 1170 IF i(1)+i(2)+i(3)+i(4)=52 THEN z=2 1180 q=0:FOR x=13 TO 52 STEP 13:y=0 1190 IF ((g(x)+y) MOD 14)=0 THEN 1200 ELSE y=y+1:IF h(g(x)+y)=0 THEN q=q+1:GOTO 1190 1200 NEXT:RETURN 1210 IF e=1 THEN 1260 ELSE e=1:f=52:GOSUB 320:WINDOW #1,16,26,20,24 1220 DIM g(52),h(52):GOSUB 1360:LOCATE 35,17:PRINT"CARDS";:LOCATE 35,18:PRINT"LEFT:";:f1=52:GOSUB 1510 1230 h(1)=f(52):f1=51:h1=1:g(h(h1))=1:GOSUB 1500:GOSUB 1510:p=1:GOSUB 1460 1240 IF f1=0 THEN 1330 ELSE GOSUB 1500:h1=h1+1:h(h1)=f(f1):f1=f1-1:IF f1>0 THEN GOSUB 1510 ELSE PEN 1:LOCATE 35,16:PRINT"NO";:LOCATE 36,19:PRINT" ";:LOCATE 39,18:PRINT " "; 1250 g(h(h1))=h1:p=h1:GOSUB 1460 1260 CLS #1:e1=1:SOUND 2,100,3:GOSUB 370 1270 IF u=0 OR v=0 THEN IF u$=CHR$(127) OR v$=CHR$(127) THEN SOUND 2,600:GOTO 1260 ELSE IF u$=" " OR v$=" " THEN CLS #1:GOTO 1240 ELSE z=1:RETURN 1280 u1=u:v1=v:w1=(v-1)*13+u:IF g(w1)=0 THEN SOUND 2,600:GOTO 1260 1290 LOCATE #1,4,3:PRINT #1,"to";:e1=4:GOSUB 370 1300 IF u=0 OR v=0 THEN IF u$=CHR$(127) OR v$=CHR$(127) THEN SOUND 2,600:GOTO 1260 ELSE IF u$=" " OR v$=" " THEN CLS #1:GOTO 1240 ELSE z=1:RETURN 1310 w2=(v-1)*13+u:IF g(w2)=0 THEN SOUND 2,600:GOTO 1260 1320 IF (g(w2)<>g(w1)-1 AND g(w2)<>g(w1)-3) OR (u<>u1 AND v<>v1) THEN SOUND 2,600:GOTO 1260 ELSE GOSUB 1430:GOTO 1260 1330 CLS #1:LOCATE #1,1,1:PRINT #1,"You got";h1;:LOCATE #1,3,2:PRINT #1,"I got";w;:LOCATE #1,2,4 1340 IF h1<w THEN PRINT #1,"YOU WIN!";:FOR x=150 TO 25 STEP -1:SOUND 2,x,2:NEXT: ELSE IF w<h1 THEN PRINT #1," I WIN!";:FOR x=50 TO 150:SOUND 2,x,2:NEXT ELSE PRINT #1,"A DRAW!";:FOR x=150 TO 75 STEP -1:SOUND 2,x,2:NEXT:FOR x=76 TO 150:SOUND 2,x,2:NEXT 1350 PAPER 0:PEN 1:LOCATE 27,24:PRINT"[press space]";:WHILE INKEY$<>"":WEND:WHILE INKEY$<>" ":WEND:CLS #1:LOCATE 27,24:PRINT SPACE$(13);:z=4:RETURN 1360 PEN 1:LOCATE 14,24:PRINT"Working it out";:h(1)=f(52):f1=51:h1=1:WHILE f1>0:h1=h1+1:h(h1)=f(f1):f1=f1-1:x=h1 1370 IF x>3 THEN y=x-3:GOSUB 1410:IF w=1 THEN 1370 1380 IF x>1 THEN y=x-1:GOSUB 1410:IF w=1 THEN 1370 1390 IF x<h1 THEN x=x+1:GOTO 1370 1400 WEND:w=h1:CLS #2:RETURN 1410 IF (h(x)-1)‡ 13<>(h(y)-1)‡ 13 AND ((h(x)-1) MOD 13)<>((h(y)-1) MOD 13) THEN w=0:RETURN 1420 h(y)=h(x):WHILE x<h1:h(x)=h(x+1):x=x+1:WEND:h1=h1-1:x=y:w=1:RETURN 1430 n=g(w1):p=g(w2):h(p)=h(n):g(w2)=0:g(w1)=p:GOSUB 1440:GOSUB 1460:WHILE n<h1:h(n)=h(n+1):g(h(n))=n:n=n+1:GOSUB 1440:p=n-1:GOSUB 1460:WEND:h1=h1-1:RETURN 1440 PAPER 0:r=((n-1) MOD 12)*3+3:s=((n-1)‡ 12)*4+2:IF s=2 THEN PLOT (r-1)*16,(26-s)*16,0:DRAWR 46,0 1450 FOR t=s TO s+3:LOCATE r,t:PRINT" ":NEXT:RETURN 1460 PAPER 3:r=((p-1) MOD 12)*3+3:s=((p-1)‡ 12)*4+2:FOR t=s TO s+3:LOCATE r,t:PRINT" ":NEXT:t=h(p)-1:IF t‡ 13=0 OR t‡ 13=3 THEN PEN 1 ELSE PEN 2 1470 LOCATE r,s:PRINT MID$(a$((t MOD 13)+1),INSTR(a$((t MOD 13)+1)," ")+1); 1480 LOCATE r+2,s+3:PRINT CHR$(t‡ 13+226); 1490 PLOT (r-1)*16,(26-s)*16,1:DRAWR 46,0:DRAWR 0,-64:DRAWR -46,0:DRAWR 0,64:RETURN 1500 PAPER 0:FOR y=21 TO 24:LOCATE 36,y:PRINT " ";:NEXT:PLOT 560,80,0:DRAWR 46,0:RETURN 1510 PAPER 3:PEN 1:FOR y=21 TO 24:LOCATE 36,y:PRINT STRING$(3,CHR$(250));:NEXT:PLOT 560,80,1:DRAWR 46,0:DRAWR 0,-64:DRAWR -46,0:DRAWR 0,64:PAPER 0:LOCATE 36,19:PRINT f1:RETURN 1520 IF e=1 THEN 1570 ELSE e=1:f=52:GOSUB 320:DIM g(5),h(25),i(5),j(5):WINDOW #1,25,35,20,24 1530 w=1:FOR y=3 TO 19 STEP 4:FOR x=2 TO 14 STEP 3:GOSUB 1730:LOCATE x+1,y+1:PRINT CHR$(64+w);:w=w+1:NEXT:NEXT 1540 WINDOW #3,21,38,2,24:PAPER #3,0:CLS #3:PAPER #3,3:PEN #3,1:RESTORE 1650:FOR w=1 TO 11:READ z$:LOCATE #3,1,w:PRINT #3,z$:NEXT 1550 PAPER #3,0:FOR w=14 TO 15:READ z$:LOCATE #3,1,w:PRINT #3,z$:NEXT 1560 f1=1:GOSUB 1680 1570 CLS #1:LOCATE #1,1,1:PRINT #1,"Move to:":LOCATE #1,1,3:PRINT #1,"(Z to end)" 1580 SOUND 2,100,3:WHILE INKEY$<>"":WEND 1590 z$=UPPER$(INKEY$):IF z$="" THEN 1590 ELSE h1=INSTR("ABCDEFGHIJKLMNOPQRSTUVWXYZ",z$):IF h1=0 THEN SOUND 2,600:GOTO 1590 ELSE IF h1=26 THEN z=1:RETURN 1600 LOCATE #1,10,1:PRINT #1,z$;:IF h(h1)<>0 THEN SOUND 2,600:GOTO 1590 1610 GOSUB 1670:h(h1)=f(f1):h2=h2+1:f1=f1+1:GOSUB 1710:IF f1<26 THEN GOSUB 1680:GOTO 1580 1620 PAPER 0:PEN 1:s=0:FOR m=0 TO 4:FOR n=1 TO 5:g(n)=h(m*5+n):NEXT:r=0:GOSUB 1740:LOCATE 17,m*4+4:PRINT r:SOUND 2,250,2:s=s+r:NEXT 1630 FOR m=1 TO 5:FOR n=0 TO 4:g(n+1)=h(n*5+m):NEXT:r=0:GOSUB 1740:LOCATE (m-1)*3+2,24:PRINT r:SOUND 2,400,2:s=s+r:NEXT 1640 PAPER #3,0:PEN #3,1:FOR y=12 TO 17:LOCATE #3,5,y:PRINT #3,SPACE$(10):NEXT:CLS #1:LOCATE #3,3,16:PRINT #3,"You Score";s:SOUND 2,200,135,15,1,1:z=4:RETURN 1650 DATA " SCORING "," ","STRAIGHT FLUSH 30","4 OF A KIND 16","STRAIGHT 12","FULL HOUSE 10" 1660 DATA "3 OF A KIND 6","FLUSH 5","2 PAIRS 3","1 PAIR 1",," next"," card" 1670 PAPER #3,3:PEN #3,1:FOR y=13 TO 17:LOCATE #3,11,y:PRINT #3,STRING$(4,CHR$(250));:NEXT:GOSUB 1700:RETURN 1680 PAPER #3,3:FOR y=13 TO 17:LOCATE #3,11,y:PRINT #3,SPACE$(4):NEXT:IF (f(f1)-1)‡ 13 = 0 OR (f(f1)-1)‡ 13 = 3 THEN PEN #3,1 ELSE PEN #3,2 1690 z$=a$(((f(f1)-1) MOD 13)+1)+CHR$((f(f1)-1)‡ 13+226):LOCATE #3,11,13:PRINT #3,MID$(z$,INSTR(z$," ")+1);:LOCATE #3,12,17:PRINT #3,z$:GOSUB 1700:RETURN 1700 PLOT 480,192,1:DRAWR 62,0:DRAWR 0,-80:DRAWR -62,0:DRAWR 0,80:RETURN 1710 x=((h1-1) MOD 5)*3+2:y=((h1-1)‡ 5)*4+3:PAPER 3:IF (h(h1)-1)‡ 13=0 OR (h(h1)-1)‡ 13=3 THEN PEN 1 ELSE PEN 2 1720 FOR w=0 TO 3:LOCATE x,y+w:PRINT SPACE$(3):NEXT:LOCATE x,y:PRINT MID$(a$(((h(h1)-1) MOD 13)+1),INSTR(a$(((h(h1)-1) MOD 13)+1)," ")+1);:LOCATE x+2,y+3:PRINT CHR$((h(h1)-1)‡ 13+226);:GOSUB 1730:RETURN 1730 PLOT (x-1)*16,(26-y)*16,1:DRAWR 46,0:DRAWR 0,-64:DRAWR -46,1:DRAWR 0,64:RETURN 1740 x=1:w=0:WHILE x<5:IF g(x)>g(x+1) THEN y=g(x):g(x)=g(x+1):g(x+1)=y:w=1 1750 x=x+1:WEND:IF w=1 THEN 1740 ELSE FOR x=1 TO 5:i(x)=(g(x)-1)‡ 13+1:j(x)=((g(x)-1) MOD 13)+1:NEXT 1760 x=1:w=0:WHILE x<5:IF j(x)>j(x+1) THEN y=j(x):j(x)=j(x+1):j(x+1)=y:w=1 1770 x=x+1:WEND:IF w=1 THEN 1760 1780 v=0:FOR x=1 TO 4:IF i(x)<>i(x+1) THEN 1790 ELSE NEXT:r=r+5:v=1 1790 FOR x=1 TO 4:IF j(x+1)<>j(x)+1 THEN IF v=1 THEN RETURN ELSE 1820 1800 NEXT:IF v=1 THEN r=r+25 ELSE r=r+12 1810 RETURN 1820 u=1:FOR x=1 TO 3:IF j(x)=j(x+1) THEN u=u+1:NEXT:r=r+16:RETURN 1830 v=1:FOR x=2 TO 4:IF j(x)=j(x+1) THEN v=v+1:NEXT:r=r+16:RETURN 1840 IF u=3 THEN IF j(4)=j(5) THEN r=r+10:RETURN ELSE r=r+6:RETURN 1850 IF u=2 THEN r=r+1:IF j(3)=j(4) OR j(4)=j(5) THEN r=r+2:IF j(3)=j(5) THEN r=r+7:RETURN ELSE RETURN ELSE RETURN 1860 IF v=3 THEN r=r+6:RETURN 1870 IF v=2 THEN IF j(4)=j(5) THEN r=r+3:RETURN ELSE r=r+1:RETURN 1880 IF j(3)=j(4) OR j(4)=j(5) THEN r=r+1:IF j(3)=j(5) THEN r=r+5 1890 RETURN |