Beispiel #1
0
 def test_get_pieces(self):
     g = Game(rows=1)
     g.drop_cross(0)
     g.drop_round(1)
     self.assertTrue((0,0) in g._get_pieces('X'))
     self.assertFalse((1,0) in g._get_pieces('X'))
     self.assertTrue((1,0) in g._get_pieces('O'))
     self.assertFalse((0,0) in g._get_pieces('O'))
Beispiel #2
0
    def test_total_minimum_pieces(self):
        g = Game()
        [g.drop_cross(0) for i in range(3)]
        self.assertFalse(g._minimum_pieces(g._pieces))

        g = Game()
        [g.drop_cross(0) for i in range(4)]
        self.assertTrue(g._minimum_pieces(g._pieces))
Beispiel #3
0
    def test_horizontal_win_by_cross(self):
        # No victory, insufficient total pieces
        g = Game()
        [g.drop_cross(i) for i in range(3)]
        self.assertFalse(g._horizontal_win('X'))

        # No victory insufficient row total pieces
        g = Game()
        [g.drop_cross(i) for i in range(3)]
        g.drop_cross(0)
        self.assertFalse(g._horizontal_win('X'))

        # Horizontal win using crosses
        g = Game()
        [g.drop_cross(i) for i in range(4)]
        self.assertTrue(g._horizontal_win('X'))
Beispiel #4
0
    def test_vertical_win_by_cross(self):
        # No victory, insufficient total pieces
        g = Game()
        [g.drop_cross(0) for i in range(3)]
        self.assertFalse(g._vertical_win('X'))

        # No victory, insufficient column total pieces
        g = Game()
        [g.drop_cross(0) for i in range(3)]
        g.drop_cross(1)
        self.assertFalse(g._vertical_win('X'))

        # Vertical win using crosses
        g = Game()
        [g.drop_cross(0) for i in range(4)]
        self.assertTrue(g._vertical_win('X'))
Beispiel #5
0
 def test_drop_cross_on_full_column_raises(self):
     g = Game(rows=2)
     self.assertEquals(g.drop_cross(0), (0,1))
     self.assertEquals(g.drop_cross(0), (0,0))
     self.assertRaises(ColumnFullException, g.drop_cross, 0)
Beispiel #6
0
 def test_drop_cross(self):
     g = Game()
     self.assertEquals(g.drop_cross(0), (0,5))
     self.assertTrue((0,5) in g._cross_pieces)
Beispiel #7
0
    def test_diagonal_win_by_cross(self):
        """
        Diagonal win using this structure
              X
            X O
          X O O
        X O O O
        """
        g = Game()
        g.drop_cross(0)
        g.drop_round(1)
        g.drop_cross(1)
        g.drop_round(2)
        g.drop_round(2)
        g.drop_cross(2)
        g.drop_round(3)
        g.drop_round(3)
        g.drop_round(3)
        g.drop_cross(3)
        self.assertTrue(g._diagonal_win('X'))

        """
        Diagonal win using this structure
        X
        O X
        O O X
        O O O X
        """
        g = Game()
        g.drop_cross(3)
        g.drop_round(2)
        g.drop_cross(2)
        g.drop_round(1)
        g.drop_round(1)
        g.drop_cross(1)
        g.drop_round(0)
        g.drop_round(0)
        g.drop_round(0)
        g.drop_cross(0)
        self.assertTrue(g._diagonal_win('X'))
        self.assertFalse(g._diagonal_win('O'))

        # No victory, insufficient total pieces
        g = Game()
        [g.drop_cross(i) for i in range(3)]
        self.assertFalse(g._diagonal_win('X'))