{ Read the file INCLUDE to learn how to include this file in your program } const INDENT = ' '; type DeckType = set of 1..52; var used: DeckType; function RandomInt (j, k: integer): integer; var x: real; begin x := Random (); {see 9B study guide for information about using this} if x = 1.0 then begin RandomInt := k; end else begin RandomInt := j + trunc((k-j)*x); end; end; procedure Shuffle; begin used := []; end; procedure PrintUsed; var card: integer; begin write (INDENT, 'Used: '); for card := 1 to 52 do begin if card in used then begin write (card:3); end; end; writeln; end; function CardValue (cardNum: integer): integer; begin case (cardNum-1) mod 13 of 0: CardValue := 11; 1, 2, 3, 4, 5, 6, 7, 8: CardValue := cardNum mod 13; 9, 10, 11, 12: CardValue := 10; end; end; function NextCard: integer; var cardNum: integer; begin repeat cardNum := RandomInt (1, 52); until not (cardNum in used); used := used + [cardNum]; NextCard := CardValue (cardNum); PrintUsed; end;