ヨットの続きです。惰性です。 ちなみにまだ一回もヨットで遊んでません。
点数表によると、Chance, ThreeDice, FourDiceは出た目を全部足せばいいようです。
なのでSelectNumber()をさらに分解して、 単に選ぶだけのSelect()というやつを作ります。 で、SelectNumber()をそれを使うように再定義して、 新たに全部足すやつ、SelectSum()を定義します。
public void Select(Score score, int s) { score.Select(s); Reset(); } public void SelectNumber(Score score, int n) { Select(score, Dice.Sum(die => die.Value == n ? n : 0)); } public void SelectSum(Score score) { Select(score, Dice.Sum(die => die.Value)); }
そうすると、SelectChance()はどんな目でもいいのでこれを呼ぶだけですね。
public void SelectChance() { SelectSum(ChanceScore); }
ThreeDiceは同じ目が3つあるのをチェックしないとなのでそういうのを入れます。
public void SelectThreeDice() { new List<int> { 1, 2, 3, 4, 5, 6 }.Single(n => Dice.Sum(s => s.Value == n ? 1 : 0) == 3); SelectSum(ThreeDiceScore); }
AllScoresとかFormのAllScoreLabelsとかに追加してあげると、こんな感じになります。
はい、あとちょっとでヨットで遊べます。
楽しみですね。