Ejemplo n.º 1
0
    def load(self, slot, startlevel=False):
        self.slot = slot
        s = Save()
        data = s.load(slot)
        if data is None:
            self.levelidx = 0
        else:
            self.levelidx = data.levelidx

        if startlevel:
            self.startlevel(self.levelidx, True)
        return data
Ejemplo n.º 2
0
class Online:
    def __init__(self, n, m, depth, save_permission, user_id, team_id,
                 game_id):
        self.N = n
        self.M = m
        self.DEPTH = depth
        self.SAVE_PERMISSION = save_permission
        self.SLEEP_TIME = 5

        self.G = Game(n, m)
        self.T = Tree(n, m, depth)
        self.API = Api(user_id, team_id)
        self.API.set_game_id(game_id)

        # load cache
        self.S = Save(n, m, self.SAVE_PERMISSION)
        out = self.S.load()
        if out:
            print('loaded')
            self.T.EF.Hash = out

    def start_game(self):
        # first move: O
        side = int(input('choose side\n0: O, 1: X'))
        player = 1 if side == 1 else -1

        print('Start\n', self.G)

        while True:
            while True:
                players_turn = self.G.input_board_list(self.API.get_board())
                if players_turn == player:
                    break
                else:
                    print('Waiting for Player',
                          'X' if players_turn == 1 else 'O')
                    time.sleep(self.SLEEP_TIME)
            print(self.G)

            t = time.time()
            y, x = self.T.search(self.G.get_state() * player)
            print('Time:', time.time() - t)

            self.API.make_move(y, x)
            if self.G.input(y, x, player):
                break

        # save cache
        self.S.save(self.T.EF.Hash)

        print('End')
Ejemplo n.º 3
0
class Pve:
    def __init__(self, n, m, depth, save_permission):
        self.N = n
        self.M = m
        self.DEPTH = depth
        self.SAVE_PERMISSION = save_permission

        self.G = Game(n, m)
        self.T = Tree(n, m, depth)

        # load cache
        self.S = Save(n, m, self.SAVE_PERMISSION)
        out = self.S.load()
        if out:
            print('loaded')
            self.T.EF.Hash = out

    def start_game(self):
        side = int(input('choose your side\n0: O, 1: X'))
        player_1 = 1 if side == 0 else -1
        # player_2 = -player_1

        print('Start\n', self.G)

        t = time.time()

        player = 1
        for i in range(100):
            if player == player_1:
                y, x = self.T.search(self.G.get_state() * player_1)
            else:
                y = int(input('y:'))
                if y < 0:
                    break
                x = int(input('x:'))
            if self.G.input(y, x, player):
                break
            player = -player

        t = time.time() - t
        print('Time:', t)

        # save cache
        self.S.save(self.T.EF.Hash)

        print('End')
Ejemplo n.º 4
0
class Eve:
    def __init__(self, n, m, depth, save_permission):
        self.N = n
        self.M = m
        self.DEPTH = depth
        self.SAVE_PERMISSION = save_permission

        self.G = Game(n, m)
        self.T1 = Tree(n, m, depth)
        self.T2 = Tree(n, m, depth)

        # load cache
        self.S = Save(n, m, self.SAVE_PERMISSION)
        out = self.S.load()
        if out:
            print('loaded')
            self.T1.EF.Hash = out
            self.T2.EF.Hash = out

    def start_game(self):
        # first move: X
        print('Start\n', self.G)

        t = time.time()

        for i in range(20):
            if i % 2 == 0:
                player = 1
                next_move = self.T1.search(self.G.get_state())
            else:
                player = -1
                next_move = self.T1.search(-self.G.get_state())

            y, x = next_move
            if self.G.input(y, x, player):
                break

        t = time.time() - t
        print('Time:', t)

        # save cache
        self.S.save(self.T1.EF.Hash, self.T2.EF.Hash)

        print('End')
Ejemplo n.º 5
0
    my_apple = Point(random.randrange(10), random.randrange(10), 'A')

    game_over = False
    my_points = 0
    getKey = GetKey()
    my_save = Save()
    my_load = Save()

while True:
    ClearConsole()
    my_map.clean()

    key = getKey()
    if key == 27:
        my_save.save(my_apple, my_snake)
        my_load.load()
        break
    elif key == 301:
        my_snake.direction.x = 1
        my_snake.direction.y = 0
    elif key == 299:
        my_snake.direction.x = -1
        my_snake.direction.y = 0
    elif key == 296:
        my_snake.direction.x = 0
        my_snake.direction.y = -1
    elif key == 304:
        my_snake.direction.x = 0
        my_snake.direction.y = 1

    my_snake.move()