Exemple #1
0
        private List <Mentsu> findShuntsuCandidate()
        {
            List <Mentsu> resultList = new List <Mentsu>(4);

            //字牌などはチェックしないので26まで
            for (int j = 1; j < 26; j++)
            {
                // whileにしたのは一盃口などがあるから
                while (handStocks[j - 1] > 0 && handStocks[j] > 0 && handStocks[j + 1] > 0)
                {
                    Shuntsu shuntsu = new Shuntsu(
                        false,
                        Tile.valueOf(j - 1),
                        Tile.valueOf(j),
                        Tile.valueOf(j + 1)
                        );

                    //3つ並んでいても順子であるとは限らないので調べる
                    if (shuntsu.isMentsu())
                    {
                        resultList.Add(shuntsu);
                        handStocks[j - 1]--;
                        handStocks[j]--;
                        handStocks[j + 1]--;
                    }
                }
            }
            return(resultList);
        }
Exemple #2
0
        public bool equals(Object o)
        {
            if (this == o)
            {
                return(true);
            }
            if (!(o is Shuntsu))
            {
                return(false);
            }

            Shuntsu shuntsu = (Shuntsu)o;

            if (isMentsu_b != shuntsu.isMentsu_b)
            {
                return(false);
            }
            if (isOpen_b != shuntsu.isOpen_b)
            {
                return(false);
            }
            return(identifierTile == shuntsu.identifierTile);
        }