public bool Equals(Game other)
        {
            if (ReferenceEquals(null, other)) return false;
            if (ReferenceEquals(this, other)) return true;

            for (int i = 0; i < 3; i++)
            {
                if(!_board[i].SequenceEqual(other._board[i]))
                    return false;
            }

            return true;
        }
        public void When_Player_X_puts_three_in_a_row_it_should_win()
        {
            // Arrange 
            var row1 = new[] { "X", "X", "O" }; 
            var row2 = new[] { "X", "O", "O" };
            var row3 = new[] { " ", " ", " " };
            var game = new Game(row1, row2, row3);

            // Act

            game.PlayAt(2, 0);

            // Assert

            Assert.AreEqual("X", game.Winner);
        }
        public void When_9_rows_are_filled_and_there_is_no_winner_It_should_be_Cats()
        {
            // Arrange 
            var row1 = new[] { "X", "X", "O" };
            var row2 = new[] { "O", "O", "X" };
            var row3 = new[] { " ", "O", "X" };
            
            var game = new Game(row1, row2, row3);

            // Act

            game.PlayAt(2, 0);

            // Assert

            Assert.AreEqual(null, game.Winner);
        }
 void Given_the_following_board(string[] firstRow, string[] secondRow, string[] thirdrow)
 {
     game = new Game(firstRow, secondRow, thirdrow);
 }