0 ' PENTOS.BA - by Bob Delbourgo 1 ' Club 100 Library - 415/939-1246 BBS, 937-5039 NEWSLETTER, 932-8856 VOICE 2 CLS:CLEAR500:DEFINT A-Z:PRINTCHR$(27)"p";:PRINT@11,"PENTO";:PRINT@18,"MIN";:PRINT@23," ";:PRINT@60,"OS";:PRINT@63,"BY";:PRINT@94," ";:PRINT@97,"D";:PRINT@132,"BOB";:PRINT@137,"ELB";:PRINT@141,"OURG";:PRINT@174," ";:PRINT@178," ";:PRINT@184,"O"; 3 PRINT@203," NOW";:PRINT@208,"P";:PRINT@210,"S";:PRINT@213," ";:PRINT@216," ";:PRINT@220,"TO ";:PRINT@226,"ST";:PRINT@245," ";:PRINT@248,"RES";:PRINT@252,"ANY";:PRINT@256,"KEY";:PRINT@260," ";:PRINT@267,"AR"; 4 PRINT@293," ";:PRINT@298," ";:PRINT@300," ";:PRINT@308,"T"; 5 IFINKEY$=""THENR=RND(1):GOTO5 6 CLS:PRINTCHR$(27)"q";" CHOOSE :-":PRINT" (1) Checkerboard (8x8) puzzles":PRINT" (2) Pentomino triplication":PRINT" (3) Checkerboard (8x8) game" 7 I$=INKEY$:IFVAL(I$)<1ORVAL(I$)>3THEN7 8 ONVAL(I$)GOTO9,17,21 9 DIMB(11,11) 10 PRINT@161,"ymmetrical or andom";:INPUTI$:IFI$="S"ORI$="s"THEN13 11 IFI$="R"ORI$="r"THEN16 12 GOTO10 13 PRINT@202,"X-coordinate (1-4)";:INPUTX0:X0=INT(X0):IFX0<1ORX0>4THEN13 14 PRINT@242,"Y-coordinate (1-4)";:INPUTY0:Y0=INT(Y0):IFY0<1ORY0>4THEN14 15 CLS:GOTO24 16 PRINT@202,"Setting it up..":R1=INT(4*RND(1)+1):S1=INT(4*RND(1)+1):R2=INT(4*RND(1)+5):S2=INT(4*RND(1)+1):R3=INT(4*RND(1)+1):S3=INT(4*RND(1)+5):R4=INT(4*RND(1)+5):S4=INT(4*RND(1)+5):CLS:GOTO24 17 PRINT@162,"Choose the pentomino # (1-12)";:INPUTN:N=INT(N):IFN<1ORN>12THENBEEP:GOTO17 18 IFN=1THENDIMB(18,9) 19 IFN>1THENDIMB(18,12) 20 NN=3:PRINT@202,"Here the object is to fill the triply scaled area with any NINE pentominos.":FORTT=1TO35:GOSUB76:NEXTTT:CLS:I$="Q":GOTO24 21 PRINT@162,"First player name";:INPUTP$(1):IFLEN(P$(1))>11THENBEEP:GOTO21 22 PRINT@202,"Second player name";:INPUTP$(2):IFLEN(P$(2))>11THENBEEP:GOTO22 23 PRINT" Now insert the pentominos alternately The last to enter successfully wins..";:DIMB(11,11):I$="P":FORTT=1TO35:GOSUB76:NEXTTT:CLS 24 DIMA$(12):A$(1)="0000000000111110000000000":A$(2)="0000000000011110100000000":A$(3)="0000000000111100010000000":A$(4)="0000001100001110000000000":A$(5)="0000001000011100001000000":A$(6)="0000001000011100010000000":A$(7)="0000000100111000010000000" 25 A$(8)="0000000111001000010000000":A$(9)="0000000000011100110000000":A$(10)="0000000100011100010000000":A$(11)="0000001010011100000000000":A$(12)="0000001100001100001000000":H$="111111111111" 26 IFI$="r"ORI$="R"ORI$="S"ORI$="s"ORI$="P"THENFORI=2TO9:FORJ=2TO9:B(I,J)=1:NEXTJ,I 27 IFI$="s"ORI$="S"THENBX=X0+1:BY=Y0+1:GOSUB75:BX=10-Y0:BY=X0+1:GOSUB75:BX=Y0+1:BY=10-X0:GOSUB75:BX=10-X0:BY=10-Y0:GOSUB75:GOTO31 28 IFI$="r"ORI$="R"THENBX=R1+1:BY=S1+1:GOSUB75:BX=R2+1:BY=S2+1:GOSUB75:BX=R3+1:BY=S3+1:GOSUB75:BX=R4+1:BY=S4+1:GOSUB75:GOTO31 29 FORI=1TO5:FORJ=1TO4:IFMID$(A$(N),I+5*J,1)="1"THENFORP=0TO2:FORQ=0TO2:B(3*I+P-1,3*J+Q-1)=1:LINE(90+12*I+4*P,-3+12*J+4*Q)-(91+12*I+4*P,-2+12*J+4*Q),1,B:NEXTQ,P 30 NEXTJ,I 31 GOSUB77:LINE(90,0)-(90,63):PRINT@256,"U,D,L,R -- left cursor";:PRINT@296,"Arrows -- board cursor";:IFI$="Q"THEN32ELSEFORI=1TO8:FORJ=1TO8:LINE(98+4*I,5+4*J)-(99+4*I,6+4*J),1,B:NEXTJ,I 32 PRINT@27,"uit";:PRINT@67,"nsert";:PRINT@107,"nticlock.";:PRINT@147,"lockwise";:PRINT@187,"irror";:XC=10:YC=9:HC=1:BX=5:BY=5:PP=1:IFI$="Q"THENBX=8 33 W=0:XB=4*BX+94:YB=1+4*BY:PRINT@227,CHR$(27)"p";P$(PP);CHR$(27)"q"; 34 LINE(XB,YB)-(XB+1,YB+1),0,BF:LINE(XC,YC)-(XC+1,YC+1),1,B:GOSUB76:GOSUB76:LINE(XB,YB)-(XB+1,YB+1),1,BF:LINE(XC,YC)-(XC+1,YC+1),0,B:K$=INKEY$:IFK$=""THENGOSUB76:GOTO34 35 K=INSTR("QqIiAaCcMmRrLlUuDd"+CHR$(28)+CHR$(29)+CHR$(30)+CHR$(31),K$):IFK=0THEN33 36 ONK GOTO37,37,38,38,44,44,42,42,46,46,47,47,52,52,57,57,61,61,65,67,69,71 37 RUN 38 PRINTCHR$(27)"p";:PRINT@227,"CHECKING";CHR$(27)"q";:GOSUB84:PRINT@227,SPACE$(11);:IFW=1THENBEEP:GOTO33 39 U=1:GOSUB81:NN=NN+1:LINE(XC-9,YC-9)-(XC+10,YC+10),0,BF:MID$(H$,HC,1)="0":A$(HC)=STRING$(15,"0"):PRINT@227,SPACE$(8);:IFNN=12THEN73 40 PP=PP+1:IFPP=3THENPP=1 41 GOTO33 42 A1$="":A2$="":A3$="":A4$="":A5$="":FORJ=21TO1STEP-5:A1$=A1$+MID$(A$(HC),J,1):A2$=A2$+MID$(A$(HC),J+1,1):A3$=A3$+MID$(A$(HC),J+2,1):A4$=A4$+MID$(A$(HC),J+3,1):A5$=A5$+MID$(A$(HC),J+4,1):NEXTJ:A$(HC)=A1$+A2$+A3$+A4$+A5$ 43 LINE(XC-9,YC-9)-(XC+10,YC+10),0,BF:X=XC-9:Y=YC-9:U=0:GOSUB82:GOTO33 44 A1$="":A2$="":A3$="":A4$="":A5$="":FORJ=5TO25STEP5:A1$=A1$+MID$(A$(HC),J,1):A2$=A2$+MID$(A$(HC),J-1,1):A3$=A3$+MID$(A$(HC),J-2,1):A4$=A4$+MID$(A$(HC),J-3,1):A5$=A5$+MID$(A$(HC),J-4,1):NEXTJ:LINE(XC-9,YC-9)-(XC+10,YC+10),0,BF 45 A$(HC)=A1$+A2$+A3$+A4$+A5$:X=XC-9:Y=YC-9:U=0:GOSUB82:GOTO33 46 A1$=LEFT$(A$(HC),5):A5$=RIGHT$(A$(HC),5):A2$=MID$(A$(HC),6,5):A4$=MID$(A$(HC),16,5):A$(HC)=A5$+A4$+MID$(A$(HC),11,5)+A2$+A1$:LINE(XC-9,YC-9)-(XC+10,YC+10),0,BF:X=XC-9:Y=YC-9:U=0:GOSUB82:GOTO33 47 XC=XC+22:IFXC>88THENXC=XC-88:YC=YC+21 48 IFYC>63THENYC=YC-63 49 HC=HC+1:IFHC>12THENHC=1 50 IFMID$(H$,HC,1)="0"THEN47 51 GOTO33 52 XC=XC-22:IFXC<0THENXC=XC+88:YC=YC-21 53 IFYC<0THENYC=YC+63 54 HC=HC-1:IFHC<1THENHC=12 55 IFMID$(H$,HC,1)="0"THEN52 56 GOTO33 57 YC=YC-21:HC=HC-4:IFYC<0THENYC=YC+63:XC=XC-22:HC=HC+11 58 IFXC<0THENXC=XC+88:HC=12 59 IFMID$(H$,HC,1)="0"THEN57 60 GOTO33 61 YC=YC+21:HC=HC+4:IFYC>63THENYC=YC-63:XC=XC+22:HC=HC-11 62 IFXC>88THENXC=XC-88:YC=9:HC=1 63 IFMID$(H$,HC,1)="0"THEN61 64 GOTO33 65 BX=BX+1:IFB(BX,BY)=0THENBEEP:BX=BX-1 66 GOTO33 67 BX=BX-1:IFB(BX,BY)=0THENBEEP:BX=BX+1 68 GOTO33 69 BY=BY-1:IFB(BX,BY)=0THENBEEP:BY=BY+1 70 GOTO33 71 BY=BY+1:IFB(BX,BY)=0THENBEEP:BY=BY-1 72 GOTO33 73 PRINT@227,"SUCCESS!";:FORT=1TO20:NEXTT:PRINT@227," ";:FORT=1TO15:NEXTT:I$=INKEY$:IFI$=""THEN73 74 IFINSTR("Qq",I$)=0THEN73ELSERUN 75 LINE(4*BX+93,4*BY)-(4*BX+96,4*BY+3),1,B:B(BX,BY)=2:RETURN 76 FORT=1TO20:NEXTT:RETURN 77 X=1:Y=0:FORI=1TO12:IFMID$(H$,I,1)="0"THEN80 78 FORJ=0TO24:JJ=INT(J/5):IFMID$(A$(I),J+1,1)="1"THENLINE(X+4*J-20*JJ,Y+4*JJ)-(X+4*J-20*JJ+3,Y+4*JJ+3),1,B 79 NEXTJ:X=X+22:IFX>88THENX=X-88:Y=Y+21 80 NEXTI:RETURN 81 X=XB-9:Y=YB-9 82 FORJ=0TO24:JJ=INT(J/5):IFMID$(A$(HC),J+1,1)="1"THENLINE(X+4*J-20*JJ,Y+4*JJ)-(X+4*J-20*JJ+3,Y+4*JJ+3),1,B:IFU=1THENB(BX-2+J-5*JJ,BY-2+JJ)=2 83 NEXTJ:RETURN 84 W=0:FORI=1TO5:FORJ=0TO4:IFMID$(A$(HC),I+5*J,1)="0"THEN86 85 XX=BX-3+I:YY=BY-2+J:IFB(XX,YY)=0ORB(XX,YY)=2THENW=1:I=6:J=5:NEXTJ,I:RETURN 86 NEXTJ,I:RETURN