'Author : Daniel, Master Sourcerer at Kitana's Castle 'Last change: August 1, 2001 'Email : sourcerer@kitana.org $LIB ALL OFF DIM CARDNAME$(7),CARDCOLOR%(3) 'Initialize random number generator RANDOMIZE TIMER 'Read card names and colors FOR I%=0 TO 3:READ CARDCOLOR%(I%):NEXT I% FOR I%=0 TO 7:READ CARDNAME$(I%):NEXT I% 'Create a list of all 32 cards CARDS$="" FOR I%=1 TO 32 CARDS$=CARDS$+CHR$(I%) 'every character represents a card NEXT I% 'Shuffe cards CARDS$=SHUFFLE$(CARDS$) 'Show shuffled cards CLS X%=2:Y%=1 'output position FOR I%=1 TO LEN(CARDS$) C%=ASC(MID$(CARDS$,I%,1))-1 'draw card CL%=INT(C%/8) 'card color CN%=C% MOD 8 'card name LOCATE Y%,X% COLOR CARDCOLOR%(CL%),0 PRINT CHR$(CL%+3);" ";CARDNAME$(CN%); X%=X%+16:IF X%>70 THEN X%=2:Y%=Y%+1 NEXT I% END 'Returns a random number from 1 to N FUNCTION RDM%(N%) RDM%=INT(RND*N%)+1 END FUNCTION 'Shuffles the cards FUNCTION SHUFFLE$(C$) S$=C$ 'copy cards to not change variable parameter C$ R$="" 'result WHILE S$<>"" P%=RDM%(LEN(S$)) 'draw a random card R$=R$+MID$(S$,P%,1) 'add card to result S$=LEFT$(S$,P%-1)+MID$(S$,P%+1) 'remove card from source WEND SHUFFLE$=R$ END FUNCTION DATA 12,4,7,8 DATA "7","8","9","10","Boy","Queen","King","As"