C MODULE: SHUFLE C C AUTHOR: MICHAEL BOORSTEIN C C DATE: 11-MAR-78 C C COMMENTS: C C THIS ROUTINE SETS UP (SHUFFLES) THE DECK. IN DOING THIS, IT ALSO C INITIALIZES THE RANDOM NUMBER GENERATOR. C C SUBROUTINE SHUFLE IMPLICIT INTEGER(A-Z) LOGICAL*1 FRSTIM COMMON/DECK/DECK(52) COMMON/NUMLFT/NUMLFT COMMON/CARD/CARD DATA MIN,MAX/1,52/ DATA FRSTIM/.TRUE./ C C BEGIN EXECUTABLE CODE C C C FOR THE FIRST TIME ONLY C IF(.NOT.FRSTIM)GOTO 10 DO 1 J=1,52 1 DECK(J)=J C C SET ALL FLAGS = FALSE C C C INITIALIZE THE RANDOM NUMBER GENERATOR C CALL RANDOM(0,0,NUM) FRSTIM=.FALSE. C C NOW SHUFFLE THE DECK C 10 CALL STATUS(' SHUFFLING ') C C NOW WAIT FOR A FEW SECONDS, SO THAT IT LOOKS LIKE YOU MIGHT BE SHUFLING C CALL WAIT(3,2,IDS) C C KINNIE'S SPIFFO SHUFFLING ROUTINE C DO 20 I=1,3 DO 20 J=MIN,MAX CALL RANDOM(1,52,NUM) NUM=MOD(NUM+J,MAX)+1 TEMP=DECK(NUM) DECK(NUM)=DECK(J) 20 DECK(J)=TEMP C C ALL SHUFFLED, RETURN C CALL STATUS(0) CARD=0 NUMLFT=52 RETURN END