Beispiel #1
0
    def test_block_two_in_diagonals(self):
        X, O, e = self.X_O_e()

        self.board.update_from_tuple(((O, e, X),
                                      (e, X, e),
                                      (e, e, e)))
        score = computer(self.board, O, O)
        self.assertTrue(score.move == Move(2, 0))

        self.board.update_from_tuple(((e, e, e),
                                      (e, X, e),
                                      (O, e, X)))
        score = computer(self.board, O, O)
        self.assertTrue(score.move == Move(0, 0))

        self.board.update_from_tuple(((e, e, e),
                                      (e, X, e),
                                      (X, e, O)))
        score = computer(self.board, O, O)
        self.assertTrue(score.move == Move(0, 2))

        self.board.update_from_tuple(((X, e, O),
                                      (e, X, e),
                                      (e, e, e)))
        score = computer(self.board, O, O)
        self.assertTrue(score.move == Move(2, 2))
Beispiel #2
0
    def test_take_win_over_block_rows(self):
        X, O, e = self.X_O_e()
        self.board.update_from_tuple(((X, X, e),
                                      (O, O, e),
                                      (e, e, e)))
        self.assertTrue(computer(self.board, X, X).move == Move(0, 2))

        self.board.update_from_tuple(((e, e, e),
                                      (O, O, e),
                                      (X, X, e)))
        score = computer(self.board, X, X)
        self.assertTrue(score.move == Move(2, 2))
Beispiel #3
0
    def test_take_center(self):
        X, O, e = self.X_O_e()

        self.board.update_from_tuple(((e, e, e),
                                      (e, e, e),
                                      (e, e, e)))
        score = computer(self.board, X, X)
        self.assertTrue(score.move == self.board.center)

        self.board.update_from_tuple(((X, e, e),
                                      (e, e, e),
                                      (e, e, e)))
        score = computer(self.board, O, O)
        self.assertTrue(score.move == self.board.center)
Beispiel #4
0
 def test_block_two_in_col(self):
     X, O, e = self.X_O_e()
     self.board.update_from_tuple(((X, e, e),
                                   (X, O, e),
                                   (e, e, e)))
     score = computer(self.board, O, O)
     self.assertTrue(score.move == Move(2, 0))
Beispiel #5
0
 def test_confirm_opponent_win_score(self):
     X, O, e = self.X_O_e()
     self.board.update_from_tuple(((X, X, O),
                                   (O, X, e),
                                   (X, O, O)))
     score = computer(self.board, O, X)
     self.assertTrue(score.value == -500)
Beispiel #6
0
 def test_confirm_tie_score(self):
     X, O, e = self.X_O_e()
     self.board.update_from_tuple(((X, X, O),
                                   (O, O, X),
                                   (X, O, e)))
     score = computer(self.board, O, O)
     self.assertTrue(score.value == 0)
Beispiel #7
0
    def test_prefer_corners(self):
        X, O, e = self.X_O_e()

        self.board.update_from_tuple(((e, e, e),
                                      (e, X, e),
                                      (e, e, e)))
        score = computer(self.board, O, O)
        self.assertTrue(score.move in (Move(2, 0), Move(0, 0), Move(0, 2), Move(2, 2)))