8000 REM **SHUFFLE SUBROUTINE** 8010 REM 8/27/86 8020 REM **DIMENSION ARRAYS** 8030 DIM C%(52),C1(26),C2(26):REM (0) NOT USED 8040 PRINT"HIT F1 TO START" 8050 IF PEEK(197)<>4 THEN 8050: REM TIME IS PART OF RANDOM FACTOR 8060 REM SET UP THE DECK 8070 FORX=1TO52:C%(X)=X:NEXT:FORMM=1TO10:GOSUB8130:NEXT 8080 X=RND(-TI):REM ENTER HERE FOR ALL SUBSEQUENT SHUFFLES 8090 SH=INT(10*RND(X)+1)+2: REM CHANGE THE '10' TO SUIT YOURSELF 8100 FORMM=1TOSH:GOSUB8130:D=0: REM SHUFFLE RANDOM TIMES 8110 NEXT 8120 END: REPLACE THIS WITH 'RETURN' 8130 REM **A REAL SHUFFLE** 8140 C=0:CA=0:CB=0:CC=0:CD=0 8150 PRINT"...SHUFFLE....SHUFFLE..." 8160 FORI=1TO26:C1(I)=C%(I):C2(I)=C%(I+26):NEXT:REM SPLIT DECK INTO TWO 8170 GOSUB8400:GOSUB8250:IFCB>=26THEN8360 8171 REM DEAL 1ST CARD FROM RIGHT PACKET SO 1ST CARD CHANGES (JUST LIKE REAL!) 8180 GOSUB8400:GOSUB8200:IFCA>=26THEN8300 8190 GOTO8170 8200 REM **RIFFLE CARDS FROM LEFT HALF** 8210 FORC=1TOR:CA=CA+1:IFCA>26THENC=7:RETURN 8220 CD=CD+1 8230 C%(CD)=C1(CA) 8240 NEXT:RETURN 8250 REM**RIFFLE CARDS FROM RIGHT HALF** 8260 FORC=1TOR:CB=CB+1:IFCB>26THENC=5:RETURN 8270 CD=CD+1 8280 C%(CD)=C2(CB):NEXT 8290 RETURN 8300 REM **SHUFFLE BALANCE OF LEFT** 8310 FORC=CBTO26:CB=CB+1:IFCB>26THENRETURN 8320 CD=CD+1 8330 C%(CD)=C2(CB):NEXT 8340 RETURN 8350 REM **SHUFFLE BALANCE OF RIGHT** 8360 FORC=CATO26:CA=CA+1:IFCA>26THENRETURN 8370 CD=CD+1 8380 C%(CD)=C1(CA):NEXT 8390 RETURN 8400 X=RND(-TI) 8410 R=4*RND(X)+1 8420 RETURN 9000 REM ***THIS IS FOR YOU TO VERIFY THERE IS ONE AND ONLY ONE OF EACH 9010 REM NUMBER IN THE ARRAY C%(X). USE 'GOTO 9000' AND NOTE THAT 9020 REM EACH LEFT HAND NUMBER OCCURS ONCE ONLY. 9030 FORX=1TO56:FORJJ=1TO52:IFC%(JJ)=XTHENPRINTX;JJ 9040 NEXT:NEXT:END