40 lines
942 B
Text
40 lines
942 B
Text
100 REM CHESS 960
|
|
110 PRINT "SPID (-1 FOR RANDOM):";
|
|
120 OPEN 1,0:INPUT#1, SP$:CLOSE 1
|
|
130 SP=VAL(SP$)
|
|
140 IF SP<0 THEN SP=INT(RND(.)*960)
|
|
150 PRINT
|
|
160 IF SP>959 THEN SP=SP-960: GOTO 160
|
|
170 AR$="--------"
|
|
180 P=SP
|
|
190 N=P AND 3:P=INT(P/4)
|
|
200 AR$=LEFT$(AR$,2*N+1)+"B"+MID$(AR$,2*N+3)
|
|
210 N=P AND 3:P=INT(P/4)
|
|
220 AR$=LEFT$(AR$,2*N)+"B"+MID$(AR$,2*N+2)
|
|
230 N=P-6*INT(P/6):P=INT(P/6)
|
|
240 P$="Q":GOSUB 420
|
|
250 N=P-10*INT(P/10):P=INT(P/10)
|
|
260 FOR N1=0 TO 3
|
|
270 : FOR N2=N1+1 TO 4
|
|
280 : IF N<>0 THEN 340
|
|
290 : P$="N":N=N1:GOSUB 420
|
|
300 : P$="N":N=N2-1:GOSUB 420
|
|
310 : N1=3
|
|
320 : N2=4
|
|
340 : N=N-1
|
|
350 : NEXT N2
|
|
360 NEXT N1
|
|
370 P$="R":N=0:GOSUB 420
|
|
380 P$="K":N=0:GOSUB 420
|
|
390 P$="R":N=0:GOSUB 420
|
|
400 PRINT STR$(SP);":";AR$
|
|
410 END
|
|
420 FOR I=1 TO LEN(AR$)
|
|
430 : IF MID$(AR$,I,1)<>"-" THEN 510
|
|
440 : IF N<>0 THEN 480
|
|
450 : AR$=LEFT$(AR$,I-1)+P$+MID$(AR$,I+1)
|
|
460 : I=LEN(AR$)
|
|
470 : GOTO 510
|
|
480 : N=N-1
|
|
510 NEXT I
|
|
520 RETURN
|