Contributor: LEE BARKER { LEE BARKER ³ I'm trying to Write a small Poker game For a grade in my ³ High School Pascal Class. While the Array of Strings will work, it is a lot of overhead for what you want to do. It is also difficult to do the scoring. The following is a small piece of code I posted a year or two ago when someone asked a similar question. Offered as a study guide For your homework. } Const Limit = 5; { Minimum cards before reshuffle } MaxDecks = 1; { Number of decks in use } NbrCards = MaxDecks * 52; Cardvalue : Array [0..12] of String[5] = ('Ace','Two','Three','Four','Five','Six','Seven', 'Eight','Nine','Ten','Jack','Queen','King'); Suit : Array [0..3] of String[8] = ('Hearts','Clubs','Diamonds','Spades'); Type DeckOfCards = Array [0..Pred(NbrCards)] of Byte; Var Count, NextCard : Integer; Cards : DeckOfCards; Procedure shuffle; Var i, j, k, n : Integer; begin randomize; j := 0; { New Decks } For i := 0 to pred(NbrCards) do begin Cards[i] := lo(j); inc(j); if j > 51 then j := 0; end; For j := 1 to 3 do { why not ? } For i := 0 to pred(NbrCards) do begin { swap } n := random(NbrCards); k := Cards[n]; Cards[n] := Cards[i]; Cards[i] := k; end; NextCard := NbrCards; end; Function CardDealt : Byte; begin Dec(NextCard); CardDealt := Cards[NextCard]; end; Procedure ShowCard(b : Byte); Var c, s : Integer; begin c := b mod 13; s := b div 13; Writeln('The ', Cardvalue[c], ' of ', Suit[s]); end; begin Shuffle; Writeln('< The deck is shuffled >'); { if NextCard <= Limit then shuffle } For Count := 1 to 5 do ShowCard(CardDealt); Readln; end.