public bool HasPlayerWon(PlayerGlyph[] currentBoard, PlayerGlyph player) { return(_winningRowsIndices.Any(winningRowIndices => winningRowIndices.All(winningRowIndex => currentBoard[winningRowIndex] == player ) )); }
private string ParseGlyph(PlayerGlyph glyph) { switch (glyph) { case PlayerGlyph.Cross: return(_crossString); case PlayerGlyph.Naught: return(_naughtString); case PlayerGlyph.Empty: return(_emptyString); default: throw new ArgumentOutOfRangeException(nameof(glyph), glyph, null); } }
private void DrawMove(Graphics g, Move move, PlayerGlyph glyph, Color color) { int x = PreferedBorder + PreferedGrid * move.X; int y = PreferedBorder + PreferedGrid * move.Y; Pen pen = new Pen(color); switch (glyph) { case PlayerGlyph.X: g.DrawLine(pen, new Point(x + PreferedSpacer, y + PreferedSpacer), new Point(x + PreferedGrid - PreferedSpacer, y + PreferedGrid - PreferedSpacer)); g.DrawLine(pen, new Point(x + PreferedGrid - PreferedSpacer, y + PreferedSpacer), new Point(x + PreferedSpacer, y + PreferedGrid - PreferedSpacer)); break; case PlayerGlyph.O: g.DrawEllipse(pen, x + PreferedSpacer, y + PreferedSpacer, PreferedGrid - 2 * PreferedSpacer, PreferedGrid - 2 * PreferedSpacer); break; default: throw new Exception("unknown player"); } }
public StupidAIPlayer(PlayerGlyph glyph) { Glyph = glyph; }
public TextPlayer(PlayerGlyph glyph, TextReader input, TextWriter output) { Glyph = glyph; _input = input; _output = output; }
public TextPlayer(PlayerGlyph glyph) : this(glyph, Console.In, Console.Error) { }