usingSystem;namespacePoker{classProgram{staticvoidMain(string[]args){if(args.Length!=1)return;Pokerpoker=newPoker(args[0]);Console.WriteLine(poker.Judge());}}publicclassPoker{staticstringRANK="A23456789TJQK";stringcards;stringranks;publicPoker(stringcard){cards=card;ranks=SortRanks();}publicstringJudge(){boolisRoyalStraight=ranks=="ATJQK";boolisStraight=RANK.IndexOf(ranks)>=0;boolisFlush=IsFlush();stringsameRanks=GetSameRanks();if(isRoyalStraight&&isFlush)return"Royal flush";elseif(isStraight&&isFlush)return"Straight flush";elseif(isStraight)return"Straight";elseif(isFlush)return"Flush";elseif(sameRanks=="4")return"Four of a kind";elseif(sameRanks=="23")return"Full house";elseif(sameRanks=="3")return"Three of a kind";elseif(sameRanks=="22")return"Two pair";elseif(sameRanks=="2")return"One pair";elsereturn"No pair";}privatestringGetSameRanks(){int[]rankArray=newint[13];stringsameRanks="";for(inti=0;i<rankArray.Length;i++)rankArray[i]=0;for(inti=0;i<ranks.Length;i++){switch(ranks[i]){case'A':rankArray[0]++;break;case'T':rankArray[9]++;break;case'J':rankArray[10]++;break;case'Q':rankArray[11]++;break;case'K':rankArray[12]++;break;default:rankArray[ranks[i]-48-1]++;break;}}Array.Sort(rankArray);foreach(intninrankArray){if(n>1)sameRanks+=n.ToString();}returnsameRanks;}privateboolIsFlush(){charsuit=cards[0];for(inti=2;i<cards.Length;i+=2){if(cards[i]!=suit)returnfalse;}returntrue;}privatestringSortRanks(){char[]rankBuff=newchar[5];stringsortedRank="";for(inti=0;i<rankBuff.Length;i++)rankBuff[i]=cards[i*2+1];for(inti=0;i<RANK.Length;i++){charc=RANK[i];foreach(charc2inrankBuff){if(c==c2)sortedRank+=c.ToString();}}returnsortedRank;}}}
seri
#5165()
[
C#
]
Rating1/1=1.00
Rating1/1=1.00-0+
1 reply [ reply ]