def create_player(self, player_type, player_name): player_type = player_type.lower() if match(player_type, 'random'): self.players.append( RandomPlayer(player_name, self.player_indices[player_name], self.player_count)) elif match(player_type, 'intelligent'): self.players.append( HeuristicPlayer(player_name, self.player_indices[player_name], self.player_count)) elif match(player_type, 'human'): self.players.append( InteractivePlayer(player_name, self.player_indices[player_name], self.player_count, self.player_indices))
def search_in_attribute_tree(sax_id, sax_rep, sax_len): # searches for given representation by loading the tree from disk and returns score for each song in the database tree_on_disk = open(os.path.join(tree_directory,'attribute_tree'+str(sax_id)), 'rb') # pickle.dump(t, tree_on_disk, protocol=2) t = pickle.load(tree_on_disk) tree_on_disk.close() pr = pattern_relation(sax_rep, sax_len) r = 0 c = 0 score_attribute = [] for i in range(0, NO_OF_SONGS): score_attribute.append(0) for i in range(0, len(pr)): id = pr[i][0] r = int(id/SAX_VOCAB_LENGTH) c = id%SAX_VOCAB_LENGTH t_pr = t[r][c] for j in range(0, len(t_pr)): score_attribute[t_pr[j][0]] = score_attribute[t_pr[j][0]] + match(t_pr[j][1], pr[i][1]) entro = entropy(sax_rep) score_attribute = [x*entro for x in score_attribute] return score_attribute
def get_player_initial_action(cabo_allowed): string = input(" -> ") if match(string, "cabo"): if cabo_allowed: return InitialMoves.CABO else: print( "You are not allowed to call Cabo after another player has done so." ) return get_player_initial_action(cabo_allowed) elif match(string, "deck", 2): return InitialMoves.DECK elif match(string, "discard", 2): return InitialMoves.DISCARD else: print("Please type 'c', 'de' or 'di' for one of the allowed actions.") return get_player_initial_action(cabo_allowed)
import helper import numpy as np n = 100 hospital_match_avg_rank = [] student_match_avg_rank = [] for i in range(1000): students = list(np.random.permutation(n)) student_prefs = helper.random_preferences(n) hospital_prefs = helper.random_preferences(n) M = helper.match(student_prefs, hospital_prefs, students) hospital_ranks = helper.get_hospital_match_ranks(M, hospital_prefs) student_ranks = helper.get_student_match_ranks(M, student_prefs) hospital_match_avg_rank.append(np.mean(list(hospital_ranks.values()))) student_match_avg_rank.append(np.mean(list(student_ranks.values()))) print('Average hospital match rank:', np.mean(hospital_match_avg_rank)) print('Average student match rank:', np.mean(student_match_avg_rank))
def get_player_card_use(board, knowledge, player_index, player_indices, peek_allowed=False, spy_allowed=False, swap_allowed=False): string = input(" -> ") # TODO: Use the whole string instead of only the first segment. segments = string.lower().split() if match(segments[0], "discard"): board.discard() elif match(segments[0], "replace"): print("Which card(s) do you want to replace?") positions = get_position(knowledge, player_index, multiple=True) if len(positions) == 1: board.replace_at(positions[0]) return else: print("Which value do the cards at {positions} have?") value = get_value() board.replace_many(positions, value) return elif match(segments[0], "peek"): if not peek_allowed: print("You are not allowed to peek.") return get_player_card_use(board, knowledge, player_index, player_indices, peek_allowed, spy_allowed, swap_allowed) print("Which card do you want to look at?") card_index = get_position(knowledge, player_index) board.peek_at(card_index) elif match(segments[0], "spy", 2): if not spy_allowed: print("You are not allowed to spy.") return get_player_card_use(board, knowledge, player_index, player_indices, peek_allowed, spy_allowed, swap_allowed) print("Which player do you want to spy at?") spied_player = get_player(player_indices, player_index) print("Which card do you want to spy?") spied_card_index = get_position(knowledge, spied_player) board.spy_at(spied_player, spied_card_index) elif match(segments[0], "swap", 2): if not swap_allowed: print("You are not allowed to swap.") return get_player_card_use(board, knowledge, player_index, player_indices, peek_allowed, spy_allowed, swap_allowed) print("Which own card do you want to swap out?") own_card_index = get_position(knowledge, player_index) print("Which player do you want to swap with?") swapped_player = get_player(player_indices, player_index) print("Which card do you want to swap with?") swapped_card_index = get_position(knowledge, swapped_player) board.swap_with(swapped_player, swapped_card_index, own_card_index) else: print("Command not recognized.") return get_player_card_use(board, knowledge, player_index, player_indices, peek_allowed, spy_allowed, swap_allowed)