,,@& ,: P: ,,:: g:CHESS C.4 FROM "CREATIVE COMPUTING", DEC. 1981, PAGE 276:ENTERED AND ALTERED BY MIKE STAFFORD AZ C(@)$A.B8XBYLSVA0`TjA8tA1~A2A3A4B1"B6!*H2M:NBPJWSA5[Ia "DO YOU WANT INSTRUCTIONS ";IN$ IN$(IN$,) IN$"a" IN$"z" IN$((IN$) ) IN$"Y" |(CL$"N"2 < "YOUR NAME IS ";B$5F B$"" B$" HUMAN " : B$(B$,);PVZ " LEVEL OF PLAY";B8!d B8! B8!: B7! : B7!(B8!)nx " DO YOU WANT WHITE ";B$;" "; C$ . (C$,)"N" :  v1 CL$"Y" ,@: "START ";;: ,@: (," ");<F!cEA0S J a K ~ A(J,K)c A6J: A7K K J X  Y  A(X,Y) : F!B7! @ Y" X, F! @ : 6 ,@: "I CONCEDE": /@A(R,U)A(E,Q)<JA(E,Q)^T A(R,U) U A(R,U)f^XRnhYUwrA0|  ,@: "IS MY MOVE ";: ,@: (E@);Q;"- ";(R@);U; CL$"Y" ,@: "STOP ";;XEYQ  2XRYU# 2K C ,@: "CHECK ";B$;: C X$"S" :B7!: ,@: "SELF-PLAYING";: T:  : ,@: "MOVE ";B$;: :D:B4A:B9B:B5: A(X,Y) Y B A(A,B) (AX) B5: 4 X$"K" X$"Q" : ,A: (," ");:  X$"S" CL$"N":  : A0: : D ,@: "ILLEGAL";:  ,@: "OK ";AB4BB9A(A,B)A(X,Y)&A(X,Y)0 2:XADYBN 2X N$"N" : N$" "b A(A,B) B ,@: "WHAT PIECE";: : XA: YB: 2: ,@: (," ");: ,@: (," ");l B5 A(A,B): XA: YB: 2v  ,L: "$";: A(X,Y) , ,,,*,,,,*:  B A(X,Y) ,n ,,,*,,,,*:  JBYZ AX d  r S  AX     S AX BY    S  BY      S   *BY4 AX %>BB/H  =R S E\BYZf AX  dpBBnz  | S BY AX  BB   S BY AX BB   S  (A(X,Y))  : AX' BY? A B  I BBa$ B A  k. AA8 A B  B BBL B A  V AA` BBj A A B  t BB~ B A A   AA' A A B  1 BBO B A A  U g AX Xy BY Y A(A,B)      AX Y   BY A(A,B) & : BB: A(A,B) & : 2 : 2 : 2  BY1( A(A,B) & ;2 AXE< BY\F A(A,B) & fP AA}Z A(A,B) & d n AXx Y   BY A(A,B) & : BB: A(A,B) & :  :  :   BY A(A,B) &  AX% BY< A(A,B) & F AA] A(A,B) & c p TA(A,B) Tc B1T: A5S  (T)A(X,Y) A(A,B)A(X,Y): A(X,Y): ,  TB1 B1T  SA5 " , A1X 6 A2Y!@ A3A !J A4B!T A8T!^ A0)!h X 7!r Y [!| A(X,Y) : T  a! g! p! XA1y! YA2! AA3! BA4! A0! A(X,Y)A(A,B)! A(A,B)A8!  " :***************************************************************<" :* THIS SUBROUTINE CHECKS THE LEGALITY OF A MOVE" :***************************************************************" S" A(A,B) & : A(A,B) S: : (A(A,B))(A(X,Y)) S: : S: & # A(A,B) & : (A(A,B))(A(X,Y)) O#& ,L: " ";: A0 : ,N ,b ,v , Y#0  u#: A6A A7B B1B1{#D #N A3A A4B T#X #b B4A B9B D#l #v A6A A7B C# # A(A,B)  : # B3S$ WX$ MY$ NA$ HB%$ PA(A,B)7$ A(A,B)A(X,Y)D$ A(X,Y)M$ B1V$ A0d$ X r$ Y $ A(X,Y) $ Y$ X$* XN$4 YH$> A0$H $R A0$\ SB3$f XW$p YM$z AN$ BH% A(X,Y)A(A,B) % A(A,B)P3% B6!((A)(B))w% A(X,Y) A(X,Y) B6!B6!((A6A)(A7B))% G!PB1B6!% Pc : ,@: "MATE ";B$; % G!F! % F!G!% EX% QY% RA% UB%?&:***************************************************************g&:* INITIALIZE POSITIONS ON BOARD&$:***************************************************************&.&8 Y &B X &L A(X,Y)&V X&` Y'j 7,4,5,9,99,5,4,7't 2,2,2,2,2,2,2,2`'~ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1~' -2,-2,-2,-2,-2,-2,-2,-2' -7,-4,-5,-9,-99,-5,-4,-7'':*************************************************************** (:* DRAWS BOARD AND PIECESR(:***************************************************************`( Y n( X x( 2( X( Y( (( :***************************************************************):* SUBROUTINE TO DRAW A SQUARE AND THE PIECE ON IT.P):* SQUARE IS IDENTIFIED BY THE COORDINATES X,Y)(:***************************************************************)2 I P)< (((XY)))XY SQ$() : SQ$())F Z*P (((XY)))XY SQ$() : SQ$()**ZYCY;*dXC(X)O*nTEMP(A(X,Y))^*x YS m* XS {*SQCH$SQ$* XS "* A(X,Y) "* YS TEMP "* IA(X,Y) ,* YS + TEMP SQCH$() : SQCH$()+ "0+ YS S+ TEMP SQCH$(): "v+ TEMP SQCH$(): "+ TEMP SQCH$(): "+ TEMP SQCH$(): : SQCH$()+ "+ TEMP SQCH$() : SQCH$()," YCYS,XCXS,, SQCH$;&,6 ,/,@ XS8,J YS>,T,^:***************************************************************,h:* INSTRUCTIONS,r:***************************************************************,| - " 1. SPECIAL COMMANDS DURING PLAYER'S MOVE ARE:"L- " 'K' - TO CASTLE KING SIDE."y- " 'Q' - TO CASTLE QUEEN SIDE."- " 'X' - TO EXCHANGE PIECES AND LET COMPUTER PLAY."- " 'S' - TO LET THE COMPUTER PLAY BY ITSELF."F. " 'M' - TO MODIFY THE BOARD ENTER THE SQUARE FOLLOWED BY 'C','P',". " OR 'E' FOR COMPUTER, PLAYER OR EMPTY AND 'S', 'P', 'N', 'B',". " 'R', 'Q', OR 'K' FOR SQUARE, PAWN, KNIGHT, BISHOP, ROOK, QUEEN,"/ " OR KING."Y/ " 'Z' - TO ESCAPE FROM MODIFY AND LET THE COMPUTER MOVE."/ " 'I' - TO GET INSTRUCTIONS AGAIN."/ " 'L' - TO LOOK AT OR CHANGE LEVEL OF PLAY."/ " 'R' - RETURN TO MENU."80 " 2. TO PROMOTE TO P, N, B, R, OR Q ENTER THE LETTER WHEN PROMPTED."0 " 3. TO CAPTURE 'EN PASSANT' SPECIFY THE 'FROM' - 'TO' SQUARES."0 " 4. LEVELS OF PLAY ARE FROM 01 TO 24."1& " 5. COMPUTER ASSUMES MATE IF KING IS LEFT IN CHECK, SO BE SURE TO WATCH FOR" 10 " THE CHECK MESSAGE."v1: " 6. IF A MOVE IS ILLEGAL OR AN ENTRY ERROR IS MADE SIMPLY TYPE IN A NEW MOVE."1D " A MOVE MAY BE STARTED OVER BY FORCING AN ERROR. (E.G. '9').2N " 7. YOU HAVE A CHOICE OF WHITE OR BLACK. THE COMPUTER WILL ALWAYS BE AT THE"12X " TOP OF THE SCREEN."S2b "HIT ENTER TO CONTINUE";EN$Y2lb2vIp2A(,)c}2A(,)2A(,)c2A(,)2 22 ,@: (," ");2 X$2 X$"N" N$X$3 X$"A" X$"H" X(((X$))): R*3 X$"N" 3 X$"K" A(,)c A(,) A(,): A(,): A(,)c: A(,): 3 X$"Q" A(,)c A(,) A(,): A(,): A(,)c: A(,): )4 X$"K" A(,)c A(,) A(,): A(,): A(,)c: A(,): ~4  X$"Q" A(,)c A(,) A(,): A(,): A(,)c: A(,): 4 X$"X" : ,@: "EXCHANGING ";: T: CL$"Y" ,<: "START ";;:  : 4  X$"S" 5* X$"M" G54 X$"I" |: : : ,@: "MOVE ";B$;\5> X$"L" 2q5C X$"R" {5H 5R ,A: X$;5\Y(): Y \5f ,B: Y;5p ,E: "-"; 6z A(X,Y) A(X,Y)c ,@: "ENTRY ERROR ";: B6A$: A$"A" A$"H"  : A(((A$)))S6 ,G: A$_6B()6 B  : ,H: B;6 X$"K" X$"Q" ,@: "CSTL. ";X$;"-SIDE";6 6 CL$"Y" ,@: "START ";;66 J 7 J,@: (," ");7 J#7-7 M7 ,@: "MODIFYING ";W7 s7 M$"A" M$"H" 7$X(((M$)))7. ,@: M$;78M$: M$"1" M$"8" 87BY(M$)7L ,B: M$; " = ";+8VM$: M$"C" M$"P" M$"E" S1$M$: ,F: M$; : V8`M$: M$"S" M$"P" M$"N" M$"B" M$"R" M$"Q" M$"K" V$M$: ,H: M$; : `8j V$"P" V18t V$"N" V18~ V$"B" V18 V$"R" V18 V$"Q" V1 9 V$"K" V1c!9 V$"S" V1@9 S1$"C" V1 V1V1N9A(X,Y)V1g9 S1$"E" A(X,Y)q9 2{9 9M$: M$"N" :  : M$"Z" : ,@: (," ");:  : 9 CL$"Y" ,<: "START "; ;: : J 5:  (J),: ((J),);S: ,(J): (J@);[: Ja:(k:2 :< ,@: "LEVEL=";B8!;" ";:F ,@: "CHANGE LEVELS?";:PC$: C$"N"  : C$"Y" ,G: (," ");:  : PC;ZL1$: L1$"" Z : L1$"0" L1$"9" ,G: L1$ : Z;dL2$: L2$"" d : L2$"0" L2$"9" L2$L1$: L1$"0";nB8!(L1$) (L2$);xB7!B8!; ,G: L1$;L2$;< : ,@: (," ");: ,@: "MOVE ";B$;: (< CL$"Y" ,@: "STOP "; ;I< ,>: "HIT 'P' TO PLAY";m<  ,>: "OR 'B' FOR BASIC.";<A$: A$""  : A$"B" : : A$"P" : < < ,@: (," ");< ,@: "MOVE ";B$;<3=:*******************************************************O=:* PROMOTION ROUTINE=:*******************************************************= ,@: "P, N, B, R, Q";=Z$: Z$"P" A(A,B): J= Z$"N" A(A,B): J>" Z$"B" A(A,B): J/>, Z$"R" A(A,B): JN>6 Z$"Q" A(A,B): JX>@ ^>Jg>TIq>^ |{>h >r>|L> J > K >LL> A(J,K) C(L)A(J,K) : C(L)A(J,K)> K> J>LA? J ? K ?LL,?A(J,K)C(L)4? K