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); }
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"); }