def work_JSON(self, obj):
		print("working with socket")
		if obj[0] == REGISTER:
			output = self.register()
		
		elif obj[0] == RECEIVE:
			if obj[1] == BLACK_STONE:
				stone_e = StoneEnum.BLACK
			elif obj[1] == WHITE_STONE:
				stone_e = StoneEnum.WHITE
			else:
				print("RC: Invalid stone type.")
				raise Exception()
			self.receive_stone(stone_e)
			output = None
			return output
		
		elif obj[0] == MOVE:
			boards_obj = parse_boards(obj[1])
			print("trying")
			output = self.make_a_move(boards_obj)
			print("found one")
			
			if isinstance(output, tuple):
				output = get_raw(output)
		
		elif obj[0] == GAME_OVER:
			output = GAME_OVER_RESPONSE
		else:
			print("RC: Invalid JSON input.")
			raise Exception()
		output = "\"" + output + "\""
		return output		
Beispiel #2
0
def execute_input(player, arr):
    if arr[0] == REGISTER:
        return player.register()
    elif arr[0] == RECEIVE:
        stone = parse_stone(arr[1])
        player.receive_stone(stone.get_type())
    elif arr[0] == MOVE:
        boards = parse_boards(arr[1])
        output = player.choose_move(boards)
        if isinstance(output, str):
            return output
        return get_raw(output)
    else:
        raise Exception("Invalid name given to execute input")
Beispiel #3
0
    def work_JSON(self, obj):
        if obj[0] == REGISTER:
            output = self.register()
        elif obj[0] == RECEIVE:
            if obj[1] == BLACK_STONE:
                stone_e = StoneEnum.BLACK
            elif obj[1] == WHITE_STONE:
                stone_e = StoneEnum.WHITE
            else:
                raise Exception("Invalid stone type.")
            self.receive_stone(stone_e)
            output = None
        elif obj[0] == MOVE:
            boards_obj = parse_boards(obj[1])
            output = self.make_a_move(boards_obj)
            if isinstance(output, tuple):
                output = get_raw(output)
        elif obj[0] == GAME_OVER:
            output = GAME_OVER_RESPONSE
        else:
            raise Exception("Invalid JSON input.")

        return output
Beispiel #4
0
def execute_input(player, arr):
    try:
        if arr[0] == REGISTER:
            return player.register()
        elif arr[0] == RECEIVE:
            stone = parse_stone(arr[1])
            return player.receive_stone(stone.get_type())
        elif arr[0] == MOVE:
            if (len(arr) != 2):
                raise GoCrazyException("bad input")
            boards = parse_boards(arr[1])
            output = player.choose_move(boards)
            if isinstance(output, str):
                return output
            return get_raw(output)
        elif arr[0] == END_GAME:
            output = player.end_game()
            if output != "OK":
                raise GoCrazyException("player did not return OK")
            return output
        else:
            raise GoCrazyException("bad procedure name")
    except GoCrazyException:
        return GO_CRAZY