25 lines
572 B
Plaintext
25 lines
572 B
Plaintext
100 PROGRAM "Shuffle.bas"
|
|
110 RANDOMIZE
|
|
120 NUMERIC ARRAY(1 TO 20)
|
|
130 CALL INIT(ARRAY)
|
|
140 CALL WRITE(ARRAY)
|
|
150 CALL SHUFFLE(ARRAY)
|
|
160 CALL WRITE(ARRAY)
|
|
170 DEF INIT(REF A)
|
|
180 FOR I=LBOUND(A) TO UBOUND(A)
|
|
190 LET A(I)=I
|
|
200 NEXT
|
|
210 END DEF
|
|
220 DEF WRITE(REF A)
|
|
230 FOR I=LBOUND(A) TO UBOUND(A)
|
|
240 PRINT A(I);
|
|
250 NEXT
|
|
260 PRINT
|
|
270 END DEF
|
|
280 DEF SHUFFLE(REF A)
|
|
290 FOR I=UBOUND(A) TO LBOUND(A) STEP-1
|
|
300 LET CARD=RND(UBOUND(A)-LBOUND(A))+LBOUND(A)+1
|
|
310 IF CARD<>I THEN LET T=A(CARD):LET A(CARD)=A(I):LET A(I)=T
|
|
320 NEXT
|
|
330 END DEF
|