ヨットの続きです。
例のとこのスコアを見ると、
あれ?残りのやつって全部点数固定じゃん?
だったらそれ入れるだけじゃん?
あれ?もしかしてできちゃった?
そんな気がしたので一気にやります。 やってすぐ思ったのですが、ちゃんとチェックしないとずるし放題ですね。 そっちがめんどいです。
フルハウスの場合、3枚と2枚がないとだめなのでそれをチェックします。 で、例外が起こらなければ30点を入れるだけ。
public void SelectFullHouse() { new List<int> { 1, 2, 3, 4, 5, 6 }.Single(n => Dice.Sum(s => s.Value == n ? 1 : 0) == 3); new List<int> { 1, 2, 3, 4, 5, 6 }.Single(n => Dice.Sum(s => s.Value == n ? 1 : 0) == 2); Select(FullHouseScore, 30); }
残りのも点数入れるとこは同じです。ヨットは5枚そろえばいいのでFourDiceとかと同じノリでいけます。
public void SelectYacht() { new List<int> { 1, 2, 3, 4, 5, 6 }.Single(n => Dice.Sum(s => s.Value == n ? 1 : 0) == 5); Select(YachtScore, 50); }
難しいのはストレート系ですね。
ストレートに言っちゃえばこう。
public void SelectSStraight() { var d1 = Dice.Any(s => s.Value == 1); var d2 = Dice.Any(s => s.Value == 2); var d3 = Dice.Any(s => s.Value == 3); var d4 = Dice.Any(s => s.Value == 4); var d5 = Dice.Any(s => s.Value == 5); var d6 = Dice.Any(s => s.Value == 6); if (((d1 && d2 && d3 && d4) || (d2 && d3 && d4 && d5) || (d3 && d4 && d5 && d6)) == false) { throw new Exception(); } Select(SStraightScore, 30); }
だじゃれじゃないです。
さて、もしかしてひょっとして全部埋まった? これで晴れてヨットで遊べるのでしょうか?
わくわく。