def test_remote4(): # Connexion au server server = "http://localhost:8080" groupe_id = "Binôme de projet 3615" # votre vrai numéro de groupe names = "Khaled et Sylvain" # vos prénoms et noms try: wwr = WumpusWorldRemote(server, groupe_id, names) # version pour avoir les logs de requêtes # wwr = WumpusWorldRemote(server, groupe_id, names, log=True) except HTTPError as e: print(e) print("Try to close the server (Ctrl-C in terminal) and restart it") return # Création du labyrinthe status, msg, size = wwr.next_maze() maze = 1 while status == "[OK]": print(wwr.get_status()) pprint(wwr.get_gold_infos()) if maze == 1: treat_map_1(wwr) else: treat_map_gen(wwr) status, msg, size = wwr.next_maze() maze += 1 print(status, msg, size)
def treat_map_1(wwr: WumpusWorldRemote): size = wwr.current_size # Cartographie (phase 1) res = wwr.know_wumpus(1, 3) print(res) res = wwr.know_pit(0, 3) print(res) for i in range(size): for j in range(size): if (i, j) in [(1, 3), (0, 3)]: continue if random.choice([True, False]): res = wwr.cautious_probe(i, j) else: res = wwr.probe(i, j) print(res) status, msg = wwr.end_map() print(msg) pprint(wwr.get_gold_infos()) # Récupération de l'or ! (phase 2) path = [(0, 1), (1, 1), (1, 0), (0, 0)] for i, j in path: res = wwr.go_to(i, j) print(res) print(wwr.get_status()) print(wwr.get_status()) res = wwr.maze_completed() print(res)
def treat_map_gen(wwr: WumpusWorldRemote): size = wwr.current_size for i in range(size): for j in range(size): if random.choice([True, False]): res = wwr.cautious_probe(i, j) else: res = wwr.probe(i, j) print(res) status, msg = wwr.end_map() print(msg) pprint(wwr.get_gold_infos()) print(wwr.get_status()) res = wwr.maze_completed() print(res)
def test_remote(): # Connexion au server server = "http://localhost:8080" groupe_id = "Binôme de projet 3615" # votre vrai numéro de groupe names = "Khaled et Sylvain" # vos prénoms et noms try: wwr = WumpusWorldRemote(server, groupe_id, names) except HTTPError as e: print(e) print("Try to close the server (Ctrl-C in terminal) and restart it") return # Récupération du premier labyrinthe status, msg, size = wwr.next_maze() while status == "[OK]": print(msg) print("taille: ", size) ################### ##### PHASE 1 ##### ################### status, percepts, cost = wwr.probe(0, 0) print(status, percepts, cost) # Toutes les cases doivent être connues pour finir la phase 1 # Ci-après une méthode très couteuse pour arriver à ce résultat for i in range(size): for j in range(size): status, percepts, cost = wwr.cautious_probe(i, j) print(status, percepts, cost) # Il est possible, si vous l'avez déduit, de dire que vous savez ou est un puit où le Wumpus # Attention, en cas d'erreur, le jeu s'arrête ! # # statut, msg = wwr.know_wumpus(1, 3) # print(statut, msg) # statut, msg = wwr.know_pit(0, 3) # print(statut, msg) phase, pos = wwr.get_status() print("status:", phase, pos) # La carte doit être entièrement parcourue avant de passer à la phase 2! status, msg = wwr.end_map() print(status, msg) ################### ##### PHASE 2 ##### ################### phase, pos = wwr.get_status() print("status:", phase, pos) i, j = wwr.get_position() print(f"Vous êtes en ({i},{j})") status, msg, cost = wwr.go_to(0, 0) print(msg) status, msg, cost = wwr.go_to(0, 1) print(msg) status, msg, cost = wwr.go_to(0, 2) print(msg) if status == "[KO]": print("t'es mort !") print("press enter for the next maze !!") input() status, msg, size = wwr.next_maze() continue status, msg, cost = wwr.go_to(1, 2) print(msg) status, msg, cost = wwr.go_to(2, 2) print(msg) status, msg, cost = wwr.go_to(1, 2) print(msg) status, msg, cost = wwr.go_to(2, 2) print(msg) status, msg, cost = wwr.go_to(1, 2) print(msg) status, msg, cost = wwr.go_to(0, 2) print(msg) status, msg, cost = wwr.go_to(0, 1) print(msg) status, msg, cost = wwr.go_to(0, 0) print(msg) i, j = wwr.get_position() print(f"Vous êtes en ({i},{j})") # Vous devez être en (0,0) ou mort pour avoir le droit d'appeler maze_completed res = wwr.maze_completed() print(res) phase, pos = wwr.get_status() print("status:", phase, pos) print("press enter for the next maze !!") input() status, msg, size = wwr.next_maze()
def test_remote2(): # Connexion au server server = "http://localhost:8080" groupe_id = "Binôme de projet 3615" # votre vrai numéro de groupe names = "Khaled et Sylvain" # vos prénoms et noms try: wwr = WumpusWorldRemote(server, groupe_id, names) except HTTPError as e: print(e) print("Try to close the server (Ctrl-C in terminal) and restart it") return # Récupération du premier labyrinthe status, msg, size = wwr.next_maze() while status == "[OK]": print(msg) print("taille: ", size) ################### ##### PHASE 1 ##### ################### status, percepts, cost = wwr.probe(0, 0) print(status, percepts, cost) status, percepts, cost = wwr.probe(0, 0) print(status, percepts, cost) # Toutes les cases doivent être connues pour finir la phase 1 # Ci-après une méthode très couteuse pour arriver à ce résultat for i in range(size): for j in range(size): status, percepts, cost = wwr.cautious_probe(i, j) print(status, percepts, cost) gold = wwr.get_gold_infos() print(gold) status, msg = wwr.end_map() print(status, msg) ################### ##### PHASE 2 ##### ################### phase, pos = wwr.get_status() print("status:", phase, pos) i, j = wwr.get_position() print(f"Vous êtes en ({i},{j})") for i, j in [ (0, 1), (0, 2), (1, 2), (2, 2), (1, 2), (0, 2), (0, 1), (0, 2), (1, 2), (2, 2), (1, 2), (0, 2), (0, 1), (0, 0), ]: status, msg, cost = wwr.go_to(i, j) print(msg) gold = wwr.get_gold_infos() print(gold) res = wwr.maze_completed() print(res) phase, pos = wwr.get_status() print("status:", phase, pos) print("press enter for the next maze !!") input() status, msg, size = wwr.next_maze()
def test_remote3(): # Connexion au server server = "http://localhost:8080" groupe_id = "Binôme de projet 3615" # votre vrai numéro de groupe names = "Khaled et Sylvain" # vos prénoms et noms try: wwr = WumpusWorldRemote(server, groupe_id, names) # version pour avoir les logs de requêtes # wwr = WumpusWorldRemote(server, groupe_id, names, log=True) except HTTPError as e: print(e) print("Try to close the server (Ctrl-C in terminal) and restart it") return # Création du labyrinthe status, msg, size = wwr.next_maze() print(wwr.get_status()) pprint(wwr.get_gold_infos()) # Cartographie res = wwr.know_wumpus(1, 3) print(res) res = wwr.know_pit(2, 1) print(res) for i in range(size): for j in range(size): if (i, j) in [(1, 3), (2, 1)]: continue res = wwr.probe(i, j) print(res) status, msg = wwr.end_map() print(msg) pprint(wwr.get_gold_infos()) # Récupération de l'or ! path = [(0, 1), (1, 1), (1, 2), (2, 2), (1, 2), (1, 1), (0, 1), (0, 0)] for i, j in path: res = wwr.go_to(i, j) print(res) print(wwr.get_status()) res = wwr.maze_completed() print(res)
def cestpartit(): # Connexion au server server = "http://localhost:8080" groupe_id = "Binôme de projet 41" # votre vrai numéro de groupe names = "Théophane Durand et Félix Poullet-pages" # vos prénoms et noms try: wwr = WumpusWorldRemote(server, groupe_id, names) except HTTPError as e: print(e) print("Try to close the server (Ctrl-C in terminal) and restart it") return status, msg, size = wwr.next_maze() nbMaze = 0 while status == "[OK]": ################### ##### PHASE 1 ##### ################### (gs, knowledge) = initialisation(size, wwr) cartographie(size, wwr, gs, knowledge) phase, pos = wwr.get_status() # La carte doit être entièrement parcourue avant de passer à la phase 2! status, msg = wwr.end_map() #print(status, msg) phase, pos = wwr.get_status() i, j = wwr.get_position() ################### ##### PHASE 2 ##### ################### suc = [(0, 0)] largeur(size, knowledge, suc) terrain = [[1] * size for i in range(size)] for a, b in suc: terrain[a][b] = 0 goldATrouver = [] for a in range(size): for b in range(size): if ('G' in knowledge[a][b] and ((a, b) in suc)): goldATrouver.append((a, b)) #goldATrouver.append((0, 0)) cheminTotal = [] pos = wwr.get_position() for a, b in goldATrouver: #print("({}, {})".format(a, b)) chemin = astar(terrain, pos, (a, b)) pos = (a, b) for case in chemin[1:]: cheminTotal.append(case) if (case in goldATrouver): goldATrouver.remove(case) chemin = astar(terrain, pos, (0, 0)) for case in chemin[1:]: cheminTotal.append(case) #print(cheminTotal) for i, j in cheminTotal: res = wwr.go_to(i, j) #print(res) res = wwr.maze_completed() #print(res) phase, pos = wwr.get_status() nbMaze += 1 print("{} Wumpus terminés".format(nbMaze)) #input() status, msg, size = wwr.next_maze()