コード例 #1
0
        private List <Square> GetColorableSquare(SquareColor putColor, Func <Square, Square> nextSquare)
        {
            SquareColor findColor = putColor.TurnColor();
            var         list      = new List <Square>();
            Square      v         = nextSquare(this);

            if (v != null && v.Color == findColor)
            {
                while (v != null)
                {
                    if (v.Color == putColor)
                    {
                        return(list);
                    }
                    else if (v.Color == SquareColor.Null)
                    {
                        list.Clear();
                        return(list);
                    }
                    list.Add(v);
                    v = nextSquare(v);
                }
                list.Clear();
            }
            return(list);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: MeilCli/LinkedOthello
        public void Start()
        {
            putColor = ReadPutColor();
            botColor = putColor.TurnColor();
            bot      = new BaseOthelloBot(othello, botColor);
            SquareColor turnColor = SquareColor.Black;

            while (othello.PutableCount() > 0)
            {
                if (othello.BlackCount() == 0 || othello.WhiteCount() == 0)
                {
                    break;
                }
                putableList = othello.GetColorableSquare(turnColor);
                if (putableList.Count == 0)
                {
                    putableList = othello.GetColorableSquare(turnColor.TurnColor());
                    if (putableList.Count == 0)
                    {
                        break;
                    }
                    Pass(turnColor);
                    turnColor = turnColor.TurnColor();
                }
                if (turnColor == botColor)
                {
                    putableList.Clear();
                    Write();
                    Write("\n");
                    Square s = bot.PutNextSquare();
                    othello.PutColor(s.X, s.Y, botColor);
                    Write();
                }
                else
                {
                    Write();
                    Put();
                }
                turnColor = turnColor.TurnColor();
                Write("\n");
            }
            putableList.Clear();
            Write();
            Write("\n● : " + othello.BlackCount() + " ○ : " + othello.WhiteCount() + "\n");
        }