Exemplo n.º 1
0
 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))
Exemplo n.º 2
0
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	
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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))
Exemplo n.º 5
0
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)