Volatile memory

物覚えの悪いわたしの、備忘録的な技術系ブログです。

全部足せばいいやつ

ヨットの続きです。惰性です。 ちなみにまだ一回もヨットで遊んでません。

点数表によると、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とかに追加してあげると、こんな感じになります。

はい、あとちょっとでヨットで遊べます。

楽しみですね。