Bonjour,
j ai un peu besoin d aide avec le module turtle, en gros je dois realiser un petit jeu en 2d dont le plan est constituer d'une matrice ou chaque nombre représente une case et la fonction de la case ex: 1 = un mur, 0 = un espace vide, etc. je vous mon code en dessous mais j ai verifier toute les fonctions et elles fonctionnent toutes sauf tracer_plan qui semble tourner dans le vide si jamais vous avez des idées de comment le fix ce serait vrmnt cool (Ps : je sais que c'est bcp demandé car le code est long mais je suis un peu désespéré ... dans tt les cas je comprendrais que vous ayez la flemme et merci à ceux qui prendront la peine de m'aider)
le code :
ZONE_PLAN_MINI = (-240, -240) # Coin inférieur gauche de la zone d'affichage du plan
ZONE_PLAN_MAXI = (50, 200) # Coin supérieur droit de la zone d'affichage du plan
POINT_AFFICHAGE_ANNONCES = (-240, 240) # Point d'origine de l'affichage des annonces
POINT_AFFICHAGE_INVENTAIRE = (70, 210) # Point d'origine de l'affichage de l'inventaire
# Les valeurs ci-dessous définissent les couleurs des cases du plan
COULEUR_CASES = 'white'
COULEUR_COULOIR = 'white'
COULEUR_MUR = 'grey'
COULEUR_OBJECTIF = 'yellow'
COULEUR_PORTE = 'orange'
COULEUR_OBJET = 'green'
COULEUR_VUE = 'wheat'
COULEURS = [COULEUR_COULOIR, COULEUR_MUR, COULEUR_OBJECTIF, COULEUR_PORTE, \
COULEUR_OBJET, COULEUR_VUE]
COULEUR_EXTERIEUR = 'white'
# Couleur et dimension du personnage
COULEUR_PERSONNAGE = 'red'
RATIO_PERSONNAGE = 0.9 # Rapport entre diamètre du personnage et dimension des cases
POSITION_DEPART = (0, 1) # Porte d'entrée du château
# Désignation des fichiers de données à utiliser
fichier_plan = 'plan_chateau.txt'
fichier_questions = 'dico_questions.txt'
fichier_objets = 'dico_objets.txt'
import turtle
def lire_matrice(fichier_plan):
"""
lecture du fichier contenat le plan du chateau
Entrée: le plan du chateau
Résultat: une matrice qui est une liste de liste contenant une ligne horizentale des cases du plan
"""
fichier_ouvert = open(fichier_plan)
matrice = [i.split() for i in fichier_ouvert]
return matrice
global matrice, position
matrice = lire_matrice('plan_chateau.txt')
a = 0
b = 1
position= (a,b)
def calculer_pas(matrice): # calcule la taille des cases !!!!! pas bon !!!! voir pour a et b non piles!!!!
a = int((190 /len(matrice[1]))) #largeur possible/largeur plan
b = int((200/len(matrice))) #longeur possible/longeur plan
return min(a, b) #retourne la taille des carrés
def coordonnees(case, pas):
a = case[0]
b = case[1]
L = pas
res = ((-a * L)+(50-L) , (b * L) - 240 )
return res
def tracer_carré(dimension): #trace un carré de cotés dimension
turtle.forward(dimension)#trace un premier coté
turtle.left(90)#rotation de 90 degrés vers la gauche
turtle.forward(dimension)
turtle.left(90)
turtle.forward(dimension)
turtle.left(90)
turtle.forward(dimension)
turtle.left(90)
def tracer_case( case, couleur, pas): #trace une case de certaines couleur et dimension à un certain endroit!!!! reste le certain endroit
turtle.up()
turtle.goto(case)#A changer !!!!
turtle.down()
turtle.color(couleur)
turtle.begin_fill()
tracer_carré(pas)
turtle.end_fill()
turtle.done()
def afficher_plan(matrice):
pas = calculer_pas(matrice)
i=0
j=0
while i <= len(matrice):
while j <= len(matrice[0]):
point = coordonnees((i, j), pas)
if matrice[i][j] == 0:
tracer_case(point, 'white', pas)
j += 1
elif matrice[i][j] == 1:
tracer_case(point, 'grey', pas)
j += 1
elif matrice[i][j] == 2:
tracer_case(point, 'yellow', pas)
j += 1
elif matrice[i][j] == 3:
tracer_case(point, 'orange', pas)
j += 1
elif matrice[i][j] == 4:
tracer_case(point, 'green', pas)
j += 1
i += 1
afficher_plan(matrice)
Message modifié par la modération
Pour une lecture plus facile du code, à l'avenir utilisez les balises, VOIR CETTE PAGE