Echecs pour Sharp PC1500 ( pas de programme )
tir du magazine Hebdogiciel N11

	Je vous dsol tout de suite, ce programme ne joue pas aux checs. Par contre, il utilise le PC1500 ou PC2 comme un merveilleux bloc-notes "chiquen" grce auquel vous pourrez suivre toutes les parties d'chec que vous dsirez.
	Ce programme mmorise tous les coups et on peut  tout instant :
- faire imprimer la partie 		-> P
- revenir  une instruction avant 	-> K
- arrter la partie ( mode blancs ) 	-> 0
	Puis le programme vous demande si vous voulez revoir un coup de la partie :
- si oui, tapez le numro du coup
- si non, tapez 0

Programme :
5 REM checs
6 PRINT "Petit Roque Blanc :PRB":PRINT "Grand Roque Blanc :GRB"
7 PRINT 3Prtit Roque Noir : PRN":PRINT "Grand Roque Noir :GRN"
8 PRINT "Impression :P":PRINT "Correction :K":PRINT "fin et retour en AR. :0"
10 "A"CLEAR:WAIT 0:TEXT:CSIZE 2:COLOR 0:LF 2:BEEP ON:CLS
15 DIM Z(7,7),N$(60)*4
20 LPRINT "Nr.   Bl.  Noirs":LPRINT "----  ---- ----":GOSUB 680
25 E=0:I=1:J=1
30 PRINT J;:INPUT " blancs: ";N$:CLS:GOSUB 790
31 IF E=1 LET E=0:GOTO 90
32 IF (N$="prb")+(N$="grb") GOSUB 1030:N$(I)=N$:GOTO 40
33 IF LEN(N$)<>4 GOSUB 660:GOTO 30
34 GOSUB 610:IF F=1 LET F=0:GOTO 30
35 N$(I)=N$:GOSUB 900
40 PRINT J;:INPUT " noirs: ";N$:CLS:IF N$="p" LET N$(I+1)="":E=2:GOTO 70
41 IF E=1 LET N$="":GOTO 70
42 IF (N$="prn")+(N$="grn") GOSUB 1040:N$(I+1)=N$:GOTO 70
43 IF N$="k" LET Z(N1,N)=Z(M1,M):Z(M1,M)=0:GOTO 30
44 IF LEN N$<>4 GOSUB 660:GOTO 40
45 GOSUB 610:IF F=1 LET F=0:GOTO 40
46 N$(I+1)=N$:GOSUB 900
70 LPRINT TAB(0);J;TAB(6);N$(I);TAB(11);N$(I+1):I=I+2:J=J+1
72 IF E=2 LET E=0:I=I-2:J=J-1:GOSUB 790:GOTO 44
75 IF E=1 LET E=0:GOTO 90
80 GOTO 30
90 LF 1:PRINT "  *** F I N ***":LPRINT "  *** F I N ***"
100 INPUT "quel nr de coup? ";K:IF K>60 GOSUB 660:F=0:GOTO 100
105 IF K=0 THEN TEXT:LF 3:COLOR 0:END
110 GOSUB 670:FOR J=1 TO (K*2)
115 IF (N$(J)="0")+(N$(J)="") THEN 130
120 I=J:N$=N$(J):GOSUB 900:NEXT J
130 TEXT:COLOR 0:LF 4:CSIZE 2:LPRINT "coup nr.: ";K
135 GOSUB 950
140 BEEP 3,35,100:GOTO 100
500 TEXT:A=0:K=9:X1=9:X2=34:Y1=0:Y2=24
510 COLOR 0:LF 10:GRAPH:LINE (0,0)-(0,0),9:SORGN
515 FOR Z=1 TO 8
520 GOSUB 880
525 IF X2>=225 GOSUB 750:NEXT Z
530 IF Z=8 GOTO 540
535 GOTO 520
540 A=25:X1=9:X2=A+K:Y1=A:Y2=A+24:Z=0:COLOR 3
545 FOR Z=2 TO 8
550 GOSUB 880
555 IF Y2>=200 GOSUB 770:NEXT Z
560 IF Z=8 GOTO 580
565 GOTO 550
580 X=185:Y=-25:COLOR 0:FOR Z=8 TO 1 STEP -1
585 GLCURSOR (-3,X):CSIZE 1:LPRINT Z:X=X+Y:NEXT Z
600 C=25:X=19:Y=-12:FOR Z=65 TO 72
605 GLCURSOR (X,Y):CSIZE 1:LPRINT CHR$(Z):X=X+C:NEXT Z:RETURN
610 K=1
615 X$=MID$(N$,K,1)
620 IF (X$<"a")+(X$>"h") THEN 660
625 IF K=3 THEN 635
630 K=K+2:GOTO 615
635 K=2
640 X$=MID$(N$,K,I)
645 IF (X$<"1")+(X$<"8") THEN 660
650 IF K=4 LET F=0:RETURN
655 K=K+2:GOTO 640
660 F=1:BEEP 3,35,100:RETURN
670 FOR N=0 TO 7:FOR N1=0 TO 7:Z(N,N1)=0:NEXT N1:NEXT N
680 Z(0,0)=11:Z(0,1)=10:Z(0,2)=9:Z(0,3)=8:Z(0,4)=7:Z(0,5)=9:Z(0,6)=10:Z(0,7)=11
685 Z(7,0)=5:Z(7,1)=4:Z(7,2)=3:Z(7,3)=2:Z(7,4)=1:Z(7,5)=3:Z(7,6)=4:Z(7,7)=5
690 N=1:FOR I=0 TO 7:Z(N,1)=12:NEXT I:N=6:FOR I=0 TO 7:Z(N,I)=6:NEXT I:RETURN
701 DATA 5,20,5,15,5,15,13,15,7,15,7,5,5,5,15,5,5,5,5,2,5,2,15,2,15,2,15,5
702 DATA 15,5,13,5,13,5,13,15,13,15,15,15,15,15,15,20,15,20,11,20,11,20,11,18,11,18
703 DATA 8,18,8,18,8,20,8,20,5,20,0,0,0,0
706 DATA 10,20,10,5,5,5,5,2,5,2,15,2,15,2,15,5,15,5,5,5,5,5,2,12,2,12,10,16
707 DATA 10,16,18,12,18,12,15,5,8,18,12,18,0,0,0,0
711 DATA 2,5,18,5,15,5,15,2,15,2,5,2,5,2,5,5,2,5,2,16,2,16,6,10,6,10,10,16
712 DATA 10,16,14,10,14,10,18,16,18,16,18,5,10,20,12,18
713 DATA 12,18,10,16,10,16,8,18,8,18,10,20,0,0,0,0
716 DATA 9,20,11,19,11,19,13,16,13,16,15,13,15,13,17,5,17,5,18,5,18,5,18,2,18,2,5,2
717 DATA 5,2,5,5,5,5,18,5,6,5,9,11,12,12,4,11,4,11,3,12,3,12,2,13,2,13,3,14
718 DATA 3,14,4,15,4,15,5,16,5,16,9,18,9,18,9,20,9,20,11,19,0,0,0,0
721 DATA 5,7,5,4,5,4,15,4,15,4,15,7,15,7,5,7,5,7,9,13,9,13,7,15
722 DATA 7,15,10,18,10,18,13,15,13,15,11,13,11,13,15,7,0,0,0,0
726 DATA 5,5,5,2,5,2,15,2,15,2,15,5,15,5,5,5,8,5,5,13,5,13,10,20,10,20,15,13
727 DATA 15,13,12,5,10,5,10,20,0,0,0,0
750 X1=Z*25+K+1:X2=X1+24:Y1=0:Y2=24
755 IF (Z=2)+(Z=4)+(Z=6)+(Z=8) THEN COLOR 0:RETURN
760 COLOR 3:RETURN
770 X1=9:Y1=Z*A:X2=X1+25:Y2=Y1+24
775 IF (Z=3)+(Z=5)+(Z=7) THEN COLOR 3:RETURN
780 COLOR 0:RETURN
790 IF N$="p" GOSUB 950:TEXT:COLOR 0:LF 4:RETURN
792 IF N$="0" LET E=1
795 RETURN
800 RESTORE 706:RETURN
810 RESTORE 711:RETURN
820 RESTORE 716:RETURN
830 RESTORE 721:RETURN
840 RESTORE 726:RETURN
850 RESTORE 701:RETURN
870 LINE (X+A,Y+B)-(X+C,Y+D):RETURN
880 LINE (X1,Y1)-(X2,Y2),0,,B
885 X1=X2+1:Y1=Y2+1:X2=X2+25:Y2=Y2+25:RETURN
900 IF (N$="prb")+(N$="grb") GOSUB 1030:RETURN
905 IF (N$="prn")+(N$="grn") GOSUB 1040:RETURN
910 N=ASC(N$)-65:M=ASC (MID$(N$,3,1))-65
935 N1=8-VAL(MID$(N$,2,1)):M1=8-VAL(MID$(N$,4,1))
940 Z(M1,M)=Z(N1,N):Z(N1,N)=0
945 RETURN
950 GOSUB 500:X=12:Y=176:Z=0:FOR Q=0 TO 7:FOR Q1=0 TO 7
957 IF Z(Q,Q1)=0 GOSUB 1020:GOTO 985
960 IF Z(Q,Q1)=1 THEN COLOR 3:GOSUB 800
962 IF Z(Q,Q1)=2 THEN COLOR 3:GOSUB 810
964 IF Z(Q,Q1)=3 THEN COLOR 3:GOSUB 840
966 IF Z(Q,Q1)=4 THEN COLOR 3:GOSUB 820
968 IF Z(Q,Q1)=5 THEN COLOR 3:GOSUB 850
970 IF Z(Q,Q1)=6 THEN COLOR 3:GOSUB 830
972 IF Z(Q,Q1)=7 THEN COLOR 1:GOSUB 800
974 IF Z(Q,Q1)=8 THEN COLOR 1:GOSUB 810
976 IF Z(Q,Q1)=9 THEN COLOR 1:GOSUB 840
978 IF Z(Q,Q1)=10 THEN COLOR 1:GOSUB 820
980 IF Z(Q,Q1)=11 THEN COLOR 1:GOSUB 850
982 IF Z(Q,Q1)=12 THEN COLOR 1:GOSUB 830
983 GOSUB 1000
985 NEXT Q1:NEXT Q:RETURN
1000 GOSUB 860:IF A=0 THEN 1020
1010 GOSUB 870:GOTO 1000
1020 X=X+25:Z=Z+1:IF Z>7 LET Z=0:X=12:Y=Y-25
1025 RETURN
1030 IF N$="prb" LET Z(7,7)=0:Z(7,4)=0:Z(7,6)=1:Z(7,5)=5
1035 IF N$="grb" LET Z(7,0)=0:Z(7,4)=0:Z(7,2)=1:Z(7,3)=5
1037 RETURN
1040 IF N$="prn" LET Z(0,7)=0:Z(0,4)=0:Z(0,6)=7:Z(0,5)=11
1045 IF N$="grn" LET Z(0,0)=0:Z(0,4)=0:Z(0,2)=7:Z(0,3)=11
1047 RETURN
