def get_board_children(board, color, dice=None): if not dice: children = {} for roll in probability: moves = generate_moves(board, color, Dice(roll[0], roll[1])) children[roll] = moves return children else: return generate_moves(board, color, dice)
def test_4(self): b = Board() b.pointsContent = [0] * 26 b.pointsContent[1] = -1 b.pointsContent[2] = 2 b.pointsContent[4] = 1 b.pointsContent[5] = 1 b.pointsContent[6] = 3 b.pointsContent[8] = 1 b.pointsContent[12] = -5 b.pointsContent[13] = 5 b.pointsContent[17] = -2 b.pointsContent[19] = -4 b.pointsContent[20] = -1 b.pointsContent[22] = -1 b.pointsContent[24] = 2 b.whiteCheckers = {1, 12, 17, 19, 20, 22} b.blackCheckers = {24, 13, 8, 6, 5, 4, 2} b.whiteCheckersTaken = 1 b.blackCheckersTaken = 0 d = Dice(4, 2) m = generate_moves(b, "WHITE", d) print(b) print(m) self.assertEqual(len(m), 5)
def test_12(self): b = Board() b.pointsContent = [0] * 26 b.pointsContent[2] = 5 b.pointsContent[3] = -1 b.pointsContent[4] = 1 b.pointsContent[5] = 1 b.pointsContent[6] = 3 b.pointsContent[13] = 1 b.pointsContent[16] = -2 b.pointsContent[18] = -2 b.pointsContent[19] = -3 b.pointsContent[20] = -2 b.pointsContent[21] = -2 b.pointsContent[22] = -2 b.pointsContent[23] = -1 b.pointsContent[24] = 3 b.whiteCheckers = {3, 16, 18, 19, 20, 21, 22, 23} b.blackCheckers = {24, 13, 6, 5, 4, 2} b.whiteCheckersTaken = 0 b.blackCheckersTaken = 1 d = Dice(4, 1) m = generate_moves(b, "BLACK", d) print(b) print(m) self.assertEqual(len(m), 3)
def test_9(self): b = Board() b.pointsContent = [0] * 26 b.pointsContent[1] = -2 b.pointsContent[6] = 5 b.pointsContent[7] = 3 b.pointsContent[8] = 4 b.pointsContent[12] = -4 b.pointsContent[13] = -1 b.pointsContent[18] = 2 b.pointsContent[19] = -3 b.pointsContent[21] = -2 b.pointsContent[23] = -2 b.pointsContent[24] = -1 b.whiteCheckers = {1, 12, 13, 19, 21, 23, 24} b.blackCheckers = {6, 7, 8, 18} b.whiteCheckersTaken = 0 b.blackCheckersTaken = 1 d = Dice(4, 1) m = generate_moves(b, "BLACK", d) print(b) print(m) self.assertEqual(len(m), 5)
def get_move(self, backgammon): moves = generate_moves(backgammon.board, self.color, backgammon.dice) if len(moves) == 1: move = moves.pop() print("You had only one move, so we chose it for you") return move return get_move(self.color, moves)
def test_0(self): b = Board() d = Dice(5, 1) m = generate_moves(b, "BLACK", d) print(b) print(m) self.assertEqual(len(m), 8)
def test_1(self): b = Board() b.pointsContent = [0] * 26 b.pointsContent[1] = -2 b.pointsContent[12] = -5 b.pointsContent[17] = -3 b.pointsContent[19] = -5 b.pointsContent[2] = 14 b.pointsContent[7] = 1 b.whiteCheckers = {1, 12, 17, 19} b.blackCheckers = {2, 7} b.blackCheckersTaken = 0 b.whiteCheckersTaken = 0 d = Dice(5, 1) m = generate_moves(b, "BLACK", d) self.assertEqual(len(m), 1)
def get_move(self, backgammon): # pa4 specs to_move = self.color next_player = getOtherColor(self.color) board = backgammon.board moves = generate_moves(board, to_move, backgammon.dice) best, value, output = None, -1000000, None for move in moves: new_value, new_output = self.evaluate(move.board_after, next_player, to_move) # print(move, " with value", new_value) if new_value > value: best = move value = new_value output = new_output if self.learning: self.evaluate(board, to_move, to_move) self.network.backprop(output) return best
def test_8(self): b = Board() b.pointsContent = [0] * 26 b.pointsContent[7] = -2 b.pointsContent[12] = -5 b.pointsContent[17] = -3 b.pointsContent[19] = -5 b.pointsContent[8] = 1 b.pointsContent[3] = 3 b.pointsContent[1] = 10 b.pointsContent[0] = 1 b.whiteCheckers = {7, 12, 17, 19} b.blackCheckers = {8, 3, 1} b.blackCheckersTaken = 0 b.whiteCheckersTaken = 0 d = Dice(2, 2) m = generate_moves(b, "BLACK", d) print(b) print(m) self.assertEqual(len(m), 4)
def test_5(self): b = Board() b.pointsContent = [0] * 26 b.pointsContent[1] = -2 b.pointsContent[12] = -5 b.pointsContent[17] = -3 b.pointsContent[19] = -5 b.pointsContent[24] = 2 b.pointsContent[13] = 5 b.pointsContent[4] = 3 b.pointsContent[6] = 5 b.whiteCheckers = {12, 17, 19} b.blackCheckers = {24, 13, 6, 4} b.whiteCheckersTaken = 2 b.blackCheckersTaken = 0 d = Dice(4, 6) m = generate_moves(b, "WHITE", d) print(b) print(m) self.assertEqual(len(m), 1)
def test_10(self): b = Board() b.pointsContent = [0] * 26 b.pointsContent[1] = -1 b.pointsContent[2] = 1 b.pointsContent[4] = 1 b.pointsContent[5] = 2 b.pointsContent[6] = 3 b.pointsContent[8] = 1 b.pointsContent[13] = 5 b.pointsContent[21] = -13 b.pointsContent[24] = 2 b.whiteCheckers = {1, 21} b.blackCheckers = {24, 13, 8, 6, 5, 4, 2} b.whiteCheckersTaken = 1 b.blackCheckersTaken = 0 d = Dice(4, 2) m = generate_moves(b, "WHITE", d) print(b) print(m) self.assertEqual(len(m), 2)
def get_move(self, backgammon): moves = generate_moves(backgammon.board, self.color, backgammon.dice) return random.choice(tuple(moves))