//http://ja.doukaku.org/121/ 投稿用usingSystem;usingSystem.Collections.Generic;classProgram{conststringRanks="A23456789TJQKA";conststringSuits="SDHC";staticvoidMain(string[]args){if(IsRoyalStraightFlush(args[0]))Console.WriteLine("Royal straight flush");elseif(IsStraightFlush(args[0]))Console.WriteLine("Straight flush");elseif(Is4cards(args[0]))Console.WriteLine("Four of a kind");elseif(IsFullHouse(args[0]))Console.WriteLine("Full house");elseif(IsFlush(args[0]))Console.WriteLine("Flush");elseif(IsStraight(args[0]))Console.WriteLine("Straight");elseif(Is3Cards(args[0]))Console.WriteLine("Three of a kind");elseif(Is2Pair(args[0]))Console.WriteLine("Two pair");elseif(Is1Pair(args[0]))Console.WriteLine("One pair");elseConsole.WriteLine("No pair");Console.ReadLine();}staticboolIsRoyalStraightFlush(stringcards){if(IsFlush(cards)&&IsStraight(cards)){for(inti=2;i<=9;i++){//2~9までの数字が含まれていたらNGif(cards.IndexOf(i.ToString())!=-1)returnfalse;}returntrue;}returnfalse;}staticboolIsStraightFlush(stringcards){returnIsFlush(cards)&&IsStraight(cards);}staticboolIs4cards(stringcards){returnIsAnyCards(cards,4);}staticboolIsFullHouse(stringcards){returnIs3Cards(cards)&&Is1Pair(cards);}staticboolIsFlush(stringcards){foreach(charsuitinSuits.ToCharArray()){//あるスーツの文字を切り取ってif(cards.Length-cards.Replace(suit.ToString(),"").Length==5)returntrue;//5文字減ったら5枚全て同じスーツ}returnfalse;}staticboolIsStraight(stringcards){List<string>rankListInCards=newList<string>();//カードのランクのみ//ランク切り出しfor(inti=1;i<=9;i=i+2){rankListInCards.Add(cards[i].ToString());}//並び替えrankListInCards.Sort(cardRankSort);//ソート済みカードリスト作成stringsortedCards="";foreach(stringcardinrankListInCards){sortedCards+=card;}//判定if(Ranks.Contains(sortedCards))returntrue;if(sortedCards[0]=='A'){//先頭がAなら//末尾に移してもう一度判定if(Ranks.Contains(sortedCards.Remove(0,1).PadRight(5,'A')))returntrue;}returnfalse;}staticboolIs3Cards(stringcards){returnIsAnyCards(cards,3);}staticboolIs2Pair(stringcards){foreach(charRankinRanks.ToCharArray()){if(cards.Length-cards.Replace(Rank.ToString(),"").Length==2){//One pairだったらreturnIs1Pair(cards.Replace(Rank.ToString(),""));//One pairが2回でTwo pair}}returnfalse;}staticboolIs1Pair(stringcards){returnIsAnyCards(cards,2);}//あるカードがany枚含まれているかどうかを判定staticboolIsAnyCards(stringcards,intany){foreach(charRankinRanks.ToCharArray()){if(cards.Length-cards.Replace(Rank.ToString(),"").Length==any)returntrue;}returnfalse;}staticintcardRankSort(stringx,stringy){returnRanks.IndexOf(x)-Ranks.IndexOf(y);}}
あにす
#5159()
[
C#
]
Rating0/0=0.00
Rating0/0=0.00-0+
[ reply ]