Generate Chess960 starting position: Difference between revisions
Content added Content deleted
(→Header: BASIC: Consolidate BASIC entries) |
(→{{header|Commodore BASIC}}: Normalize input instead of erroring on >= 960; work without BEGIN/BEND) |
||
Line 81: | Line 81: | ||
=={{header|BASIC}}== |
=={{header|BASIC}}== |
||
==={{header|Commodore BASIC}}=== |
==={{header|Commodore BASIC}}=== |
||
{{works with|Commodore BASIC|7.0}} |
{{works with|Commodore BASIC|3.5,7.0}} |
||
Uses DO/LOOP and |
Uses structured DO/LOOP introduced in Commodore BASIC 3.5 on the C-16 and Plus/4, also found in BASIC 7.0 on the C-128. |
||
<lang basic>100 REM CHESS 960 |
<lang basic>100 REM CHESS 960 |
||
Line 90: | Line 90: | ||
140 IF SP<0 THEN SP=INT(RND(.)*960):PRINT SP |
140 IF SP<0 THEN SP=INT(RND(.)*960):PRINT SP |
||
150 PRINT |
150 PRINT |
||
160 |
160 DO WHILE SP>959: SP=SP-960: LOOP |
||
170 AR$="--------" |
170 AR$="--------" |
||
180 P=SP |
180 P=SP |
||
Line 102: | Line 102: | ||
260 FOR N1=0 TO 3 |
260 FOR N1=0 TO 3 |
||
270 : FOR N2=N1+1 TO 4 |
270 : FOR N2=N1+1 TO 4 |
||
280 : IF N |
280 : IF N<>0 THEN 340 |
||
290 : P$="N":N=N1:GOSUB 420 |
290 : P$="N":N=N1:GOSUB 420 |
||
300 : P$="N":N=N2-1:GOSUB 420 |
300 : P$="N":N=N2-1:GOSUB 420 |
||
310 : N1=3 |
310 : N1=3 |
||
320 : N2=4 |
320 : N2=4 |
||
330 : BEND |
|||
340 : N=N-1 |
340 : N=N-1 |
||
350 : NEXT N2 |
350 : NEXT N2 |
||
Line 114: | Line 113: | ||
380 P$="K":N=0:GOSUB 420 |
380 P$="K":N=0:GOSUB 420 |
||
390 P$="R":N=0:GOSUB 420 |
390 P$="R":N=0:GOSUB 420 |
||
400 PRINT AR$ |
400 PRINT STR$(SP);":";AR$ |
||
410 END |
410 END |
||
420 FOR I=1 TO LEN(AR$) |
420 FOR I=1 TO LEN(AR$) |
||
430 : IF MID$(AR$,I,1) |
430 : IF MID$(AR$,I,1)<>"-" THEN 510 |
||
440 : |
440 : IF N<>0 THEN 480 |
||
450 : |
450 : MID$(AR$,I,1)=P$ |
||
460 : |
460 : I=LEN(AR$) |
||
470 : |
470 : GOTO 510 |
||
480 : |
480 : N=N-1 |
||
490 : BEND |
|||
500 : BEND |
|||
510 NEXT I |
510 NEXT I |
||
520 RETURN |
520 RETURN |
||
</lang> |
|||
{{Out}} |
{{Out}} |
||
Line 133: | Line 131: | ||
RUN |
RUN |
||
SPID (-1 FOR RANDOM):518 |
SPID (-1 FOR RANDOM):518 |
||
RNBQKBNR |
518:RNBQKBNR |
||
READY. |
READY. |
||
RUN |
RUN |
||
SPID (-1 FOR RANDOM):- |
SPID (-1 FOR RANDOM):-1 |
||
⚫ | |||
⚫ | |||
READY.</pre> |
READY.</pre> |