コード例 #1
0
ファイル: tactics.py プロジェクト: Larhard/backgammon
def tactic_killer(board, player):
    result = 0

    result += board[jail_field(enemy(player))] \
        - board[jail_field(player)]

    return result / 15
コード例 #2
0
ファイル: game.py プロジェクト: Larhard/backgammon
 def _next_player(self):
     if get_winner(self._board) is None:
         with self._game_mutex:
             self._active_player = enemy(self._active_player)
             self._dice = list(self._roll_dice())
             if not is_any_legal_move(self._board, self._dice,
                     self._active_player):
                 self._next_player()
コード例 #3
0
ファイル: tactics.py プロジェクト: Larhard/backgammon
def tactic_push_forward(board, player):
    modifier = player_modifier(player)
    result = 0

    player_checkers = 0
    enemy_checkers = 0
    push_forward = 0

    for i, k in enumerate(board):
        if player_from_number(k) == player:
            push_forward += ((26 + modifier * i) % 26) * k / 28
            player_checkers += k
        elif player_from_number(k) == enemy(player):
            enemy_checkers += k
            push_forward -= ((26 + modifier * i) % 26) * k / 28

    push_forward -= player_checkers + enemy_checkers

    result += push_forward

    return result / 15
コード例 #4
0
ファイル: test_utils.py プロジェクト: Larhard/backgammon
 def test_enemy(self):
     self.assertEqual(utils.enemy('w'), 'b')
     self.assertEqual(utils.enemy('b'), 'w')