#!/usr/bin/env python3 import random, time ## Gestion des maps NOM_MAP = "" def créer_salle(forme_salle): """ Créer une salle aléatoire (N,E,S,O) @params void @return une salle, tuple de taille 4 """ correspondance = { "╬" : (True,)*4, "╡" : (False, False, False, True), "╞" : (False, True, False, False), "╥" : (False, False, True, False), "╨" : (True, False, False, False), "╔" : (False, True, True, False), "╗" : (False, False, True, True), "╝" : (True, False, False, True), "╚" : (True, True, False, False), "║" : (True, False, True, False), "═" : (False, True, False, True), "╦" : (False, True, True, True), "╩" : (True, True, False, True), "╠" : (True, True, True, False), "╣" : (True, False, True, True) } return correspondance[forme_salle] def charger(fichier, donjon, dragons, aventurier): """ Charge un fichier et peuple la structure donjon @params fichier, chemin d'accès à un fichier @return 1 ou None """ global NOM_MAP donjon.clear() dragons.clear() NOM_MAP = fichier # Lecture fichier brut contenu = "" with open(fichier, 'r') as fichier: contenu = fichier.read() try: # Séparation entre carte et coordonnées des personnages donjon_map = contenu[:contenu.find("A")-1].split("\n") donjon_declaration = contenu[contenu.find("A"):].split("\n") # Création du donjon for i in range(len(donjon_map[0])): ligne = [] for j in range(len(donjon_map)): ligne.append(créer_salle(donjon_map[i][j])) donjon.append(ligne) # Création des personnages for declaration in donjon_declaration: # Déclaration de l'aventurier if "A" in declaration: cible, x, y = declaration.split(" ") aventurier["position"] = (int(x),int(y)) aventurier["niveau"] = 1 # Déclaration d'un dragon elif "D" in declaration: cible, x, y, niveau = declaration.split(" ") dragons.append({ 'position' : (int(x),int(y)), 'niveau' : int(niveau) }) return 1 except Exception as e: print("Erreur : {}".format(e)) return None