[Back to MISC SWAG index] [Back to Main SWAG index] [Original]

    {
    SEAN PALMER

    > I'm trying to Write a small Poker game For a grade in my High
    > School Pascal Class.  I set the deck up as an Array of String's
    > (example: Deck: Array[1..52] of String)
    > And then filled the Array With somthing like: Deck[1]:='2 of
    > Diamonds'; I may have started wrongly, but I need a way to "Shuffle"
    > the deck.  I could probably read them into the Array Randomly, or
    > could I keep them in a logical order in the Array and shuffle the
    > Array itself?  Let me know if you have any ideas concerning my
    > problem maybe you could post some code For me.

    There are probably better ways to set up the data structure, such as:
    }

    Type
      tCardVal  = (Two, Three, Four, Five, Six, Seven,
                   Eight, Nine, Ten, Jack, Queen, King, Ace);
      tCardSuit = (Spades, Diamonds, Hearts, Clubs);

      tCard = Record
        val  : tCardVal;
        suit : tCardSuit;
      end;

    Const
      valStrings : Array [tCardVal] of String[5] =
        ('Two', 'Three', 'Four', 'Five', 'Six', 'Seven',
         'Eight', 'Nine', 'Ten', 'Jack', 'Queen', 'King', 'Ace');
     suitStrings : Array [tCardSuit] of String[8] =
       ('Spades', 'Diamonds', 'Hearts', 'Clubs');

    Var
      deck : Array [0..51] of tCard;

    { after initializing the deck, you could shuffle With a Procedure like this: }

    for i := 300 + random(50) downto 0 do
    begin
      posn           := random(51);
      tempCard       := deck[posn];
      deck[posn]     := deck[posn + 1];
      deck[posn + 1] := tempCard;
    end;

    {
    This might be better if it swapped two randomly-picked cards, would shuffle
    better... }

[Back to MISC SWAG index] [Back to Main SWAG index] [Original]