Patience /+-/9Patience by A.M. Grant,from Your Spectrum 14 (May.1985)  PATIENCE Wc(a$V,b$)=6*(b$(1)-a$(1))+(b$(2)-a$(2)) 4:0:4 0:0:0  F1,8;3;" ";6;" PATIENCE ";3;" " F3,8;3;" ";6;"  A.M.GRANT ";3;" "  6000p DISPLAY CONTROLS  2000 GOTO RUN GAME  SET UP PACK i=113 p$(i)=o$(i)+"" p$(i+13 )=o$(i)+"" p$(i+26)=o$(i)+"" p$(i+39')=o$(i)+"" i  PRINT A CARD 3ink=2*((c$(2)="")+(c$(2)="")) Epap=7-((c$(1)="")(c$(1)="")(c$(1)="")) w,z;pap;ink;" ";c$  .05|L,36$ " JINITIALISATION LO5,8;6;1;" ";4;" SETTING UP ";6;" " M 1140t Np$(524,2) Ri=18 Tc$ Xj=07 Zbyte \ c$+j,byte ^j bi fo$="" j2z$(22,7,2):z(7,2) lget=1500 n#a$(4):l$(24,2) tN"t",0,204,513,513,204,204,513,0 vN"r",0,28,28,127,127,107k,8,62> wN"n",0,28,28,127,127,107k,8,62> xL"p",0,8,28,62>,127,107k,8,62> yK"s",0,8,28,62>,127,62>,28,8 zK"o",0,8,28,62>,127,62>,28,8 }N"q",0,34",119w,127,127,62>,28,8 ~S"j",0,158,146,146,146,146,146,158 i=164@  65375_+i,(15759=+i) i  1188 i=14 c$ /w=8*(c$(1)-65A)+15880> /z=8*(c$(2)-65A)+65368X j=07  z+j,(w+j) j i  "AA","JK","QL","KM"  SET DEAL 2:17,12 ;1;6;"DEALING" j=1:k=1 i=17  l=k7 z$(i,l)=p$(j)  j=j+1 l  z(i,1)=k:z(i,2)=k  k=k+1 i i=07 01;7;1,i*4;"*";i;"*" i j=1:k=1 i=17  l=k7 i+2,4*l;":" l  k=k+1 i i=17 w=i+2:z=4*i c$=z$(i,i):1050  PRINT CARD i 17,0,, i=315 j=-4274 i,7+j;":" j i  k=2 i=16  j=k7 #i+15,4*j+3;":" j k=k+1:i (27,151:0,-102f  l=1 i=124  l$(i)=p$(i+28)  i  S#0;1,0;"";6;0;""  SET FLAGS fl1=0:fl2=0 fl3=24:fl4=13 fl5=0:fl6=0  v SHUFFLE x[.05|L,20:5,0;1;7;" PRESS ANY KEY TO SHUFFLE " y""1401y z+=""23671w\,255*:1402z {.05|L,36$:5,0,,7,8;7;"";5;" ";0;" ";0;" ";2;7;"" $x$=" S H U F F L I N G " i=1524 v$=x$(11) x$=x$(2)  x$=x$+v$ *7,10 ;5;x$(12 ) shf=1+(524*)  t$=p$(i) p$(i)=p$(shf)  p$(shf)=t$ !.001wn,(i+60<)/2 i +7,10 ;6;" SHUFFLED "  502 .05|L,36$ .05|L,20  502 i=14 a$(i)=143 i  GET A KEY PRESS ""1500 =""1502 i$=   KEY TEST fl402200 GOTO END OF GAME 1500:GET PRESS  i$="8"1600@:1516 MOVE CURSOR RIGHT  i$="5"1610J:1516 MOVE CURSOR LEFT  i$="6"1640h:1516 PUT CARD DOWN ON PILE  i$="7"1620T:1516 PICK UP CARD OR PILE  i$="9"1860D:1516 NEXT BATCH OF THREE  i$="4"1850::1516 PICK UP DECK CARD 'i$="c"i$="C"1932:1516 CHEAT! i$="q"i$="Q"1920  QUIT GAME 1516:GET PRESS ?RIGHT @pp=pp+1 Awp,15:wp=wp+4 B(pp=8pp=0:wp=22561!X Ewp,143 F HLEFT Kwp,15:wp=wp-4 Lpp=pp-1 N)pp=-1pp=7:wp=22589=X Qwp,143 R T PICK UP Upp=0 V%z(pp,1)=0fl10 Xz=pp*4 Zw=z(pp,1)z(pp,2) \w+2,z;" :" ]w ^c$=z$(z(pp,1),pp) `w=21:z=12 b1050:PRINT CARD dwt=wp ffl1=pp g h PUT DOWN ifl1=0 k-pp=01733::BUILD ON ACE PILE lKz(pp,1)=0fl4=fl4+1:z(pp,1)=1:1650r m'z$(z(pp,1),pp)=" "1656x n"test=c(c$,z$(z(pp,2),pp)) pGtest7test9 1784::INVALID ENTRY, PUT CARD BACK rnfs=z(pp,2)+1 t21,12 ;" " xfl1=81698 z1z(pp,2)=nfs+z(fl1,2)-z(fl1,1) |m=z(fl1,1) ~z=4*pp i=nfsz(pp,2) z$(i,pp)=z$(m,fl1) c$=z$(i,pp):w=i+2 1050:PRINT CARD z$(m,fl1)=" "  m=m+1 i 'z(fl1,1)=z(fl1,1)-1 z(fl1,2)=z(fl1,1) 5z(fl1,1)=0fl4=fl4-1:1692 )w=z(fl1,1)+2:z=fl1*4 c$=z$(z(fl1,1),fl1) 1050:PRINT CARD  fl1=0  z(pp,2)=nfs z$(nfs,pp)=c$ w=nfs+2:z=4*pp 1050:PRINT CARD 19,12 ;" " fl3=fl3-1:1880X Jfl3=019,15;" ":fl4=fl4-10 :1724 l>fl3l=fl3:1720  i=lfl3 l$(i)=l$(i+1) i w=19:z=12  c$=l$(l) 1050:PRINT CARD  fl1=0   ACE BUILD fl1=81736 Kz(fl1,1)z(fl1,2)1784::INVALID ENTRY, PUT BACK CARD suit=c$(2)-157 La$(suit)ɯc$(1)-11784::INVALID ENTRY, PUT BACK CARD a$(suit)=c$(1) #z=0:w=3*suit+1 21,12 ;" " 1050:PRINT CARD fl1=81776 z$(z(fl1,1),fl1)=" " 'z(fl1,1)=z(fl1,1)-1 z(fl1,2)=z(fl1,1) 5z(fl1,1)=0fl4=fl4-1:1770 c$=z$(z(fl1,1),fl1) w=z(fl1,1)+2 z=fl1*4 1050:PRINT CARD fl1=0: 1704:  PUT BACK 21,12 ;" " fl1=81800  wp,15 wp=wt pp=fl1 wp,143 z=4*pp i=z(pp,1)z(pp,2)  w=i+2  c$=z$(i,pp) 1050:PRINT CARD i fl1=0: w=19:z=12  fl1=0  1050:PRINT CARD   :3fl10fl3=0:ALREADY HOLDING A CARD <fl1=8:c$=l$(l) >w=21:z=12 ?19,12 ;" " @1050: APICK UP & DISPLAY CARD B: CNEXT 3 BATCH D2fl3=0fl10:CAN'T TURN OVER BATCH El=fl3l=0 F l=l+3 G21,12 ;" " H 1880X Jw=19:z=12 Kl>fl3l=fl3 Mw=19:z=12 N c$=l$(l) Q1050: R6TURN OVER BATCH & PRINT NEW TOP CARD ON DECK X'fl3=2fl5=01890b: Z%fl3=1fl6=01893e \ bl1:91[,20:-1,0:0,8:24,0:0,-1:0 cfl5=1: el1:93],18:-1,0:0,8:24,0:0,-1:0 ffl6=1: j TURN OVER lc$=z$(fl1,z(fl1)-1) nw=z(fl1)+2 pz=fl1*4 r1050:PRINT CARD s.05|L,20 t ~QUIT  2 4000:LOSE 17,0,,,,,,,,,, ?19,0;6;" How about another game ? " 1500:GET PRESS  *i$="y"i$="Y"2001:PLAY NEW GAME  CHEAT SUBROUTINE #fl10.05|L,20: 19,12 ;" " fl2=fl2+1 i=1fl3  t$=l$(i) shf=1+(fl3*) l$(i)=l$(shf)  l$(shf)=t$ i 1860D:NEXT BATCH .05|L,20: 1100L:1000 INITIALISE: SET UP PACK 1400x:SHUFFLE 1300:1200 SET FLAGS: DEAL CARDS wp=225771X:pp=4 wp,143 119,0;"DECK CARD : ";7;"" 94^,16:0,8:24,0:94^,18:-2,0:0,8:24,0:0,-2:92\,20:-2,0:0,8:24,0:0,-2 i=413 3 $i,0;2;7;"" i !21,0;"HELD CARD :" &.1}L,36$:.1}L,20 1516:GET PRESS 4FINISH ROUTINE 17,0,,,,,,,,,, 2:7 J1,0;"";6;0;"" Q17,0;1;4;0;" WELL DONE YOU HAVE FINISHED " 4:0  3000 fl2=02221 18,0;5;" but you did ";1;" CHEAT ";0;" ";7;2;fl2;0;5;0;" time"; fl2>15;"s";  5;32 :1923 WIN 3100 i=118 l,p l/5,p-24:l,p i  I.2~L,22,.1}L,22,.25~,27,.25~,27,.25~,29,.25~,29,.4L,34",.1}L,31,.2~L,27,.1}L,27,.2~L,31,.1}L,27,.2~L,24,.3,32 ,.1}L,32 ,.2~L,29,.1}L,26,.4L,27 : : LOSE  4100 i=19 l,p $l/15,p-24:l/3,p i i=17  1 k=z(i,1)-1  j=1k  c$=z$(j,i)  w=j+2  z=4*i  1050 j i 0:0  4  .4L,27,.4L,26,.4L,27,.4L,26,.353333,27,.45ffff,22,.353333,25,.3,23,.6,20 "patience"1  "patience" pZ9 ,8;1;6;5;" ";1;" CONTROL KEYS ";6;" ": q 5 r" 5 LEFT","8 RIGHT";32 u%" 6 PUT DOWN","7 PICK UP";32 z"" 4 PICK UP FROM DECK";32 $" 9 NEXT BATCH OF THREE";32  4  m4 ytO ; Ke 5 CAAw>zXZPatch p  yIncluding patch by J Sneideris to only allow Kings on empty files, from Your Spectrum 16 (Jul.1985) \*4;w+2,z;" ";0;":" j-pp=01733::BUILD ON ACE PILE k>(3,pp*4)=36$c$(1)""1784: