Example #1
0
 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);
            }
        }
Example #3
0
        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;
 }
Example #5
0
 public TextPlayer(PlayerGlyph glyph, TextReader input, TextWriter output)
 {
     Glyph   = glyph;
     _input  = input;
     _output = output;
 }
Example #6
0
 public TextPlayer(PlayerGlyph glyph) : this(glyph, Console.In, Console.Error)
 {
 }