Draw Poker Flush = 0; FH = 0; Pair4 = 0; Pair3 = 0; Pair22 = 0; Pair2 = 0; HighCard = 0; for games = 1:1e5 X = rand(1,52); [a, Deck] = sort(X); Deck = Deck - 1; Hand = Deck(1:5); Top = 6; Value = mod(Hand, 13) + 1; Suit = floor(Hand/13) + 1; % Check for a Flush NS = zeros(4,1); for i=1:4 NS(i) = sum(Suit == i); end NS = sort(NS, 'descend'); % Sort by frequency F = Value / 100; for i=1:5 F(i) = F(i) + sum(Value == Value(i)); end [a,b] = sort(F, 'descend'); Value = Value(b); Suit = Suit(b); Hand = Hand(b); for i=1:13 N(i) = sum(Value == i); end N = sort(N, 'descend'); if(NS(1) == 5) %disp('Flush') elseif(N(1) == 4) %disp('4 of a kind') elseif((N(1)==3)*(N(2)==2)) %disp('full house') elseif((N(1)==3)*(N(2)<2)) %disp('three of a kind') Hand(4:5) = Deck(Top:Top+1); Top = Top + 2; elseif((N(1)==2)*(N(2)==2)) %disp('two pair') Hand(5) = Deck(Top); Top = Top + 1; elseif((N(1)==2)*(N(2)<2)) %disp('pair') Hand(3:5) = Deck(Top:Top+2); Top = Top + 3; elseif(N(1) < 2) %disp('High Card') Hand(2:5) = Deck(Top:Top+3); Top = Top + 4; end Value = mod(Hand, 13) + 1; Suit = floor(Hand/13) + 1; % Check for a Flush NS = zeros(4,1); for i=1:4 NS(i) = sum(Suit == i); end NS = sort(NS, 'descend'); % check for pairs for i=1:13 N(i) = sum(Value == i); end N = sort(N, 'descend'); if(NS(1)==5) Flush=Flush+1; end if(N(1)==4) Pair4=Pair4+1; end if((N(1)==3)*(N(2)==2)) FH=FH+1; end if((N(1)==3)*(N(2)<2)) Pair3=Pair3+1; end if((N(1)==2)*(N(2)==2)) Pair22=Pair22+1; end if((N(1)==2)*(N(2)<2)) Pair2=Pair2+1; end if(N(1)<2) HighCard=HighCard+1; end end disp(' 4oK FH Flush Pair3 Pair22 Pair2 High') disp([Pair4, FH, Flush, Pair3, Pair22, Pair2, HighCard]);