Skip to content

Commit

Permalink
Choix grandeurs labyrinthe
Browse files Browse the repository at this point in the history
  • Loading branch information
Jerem-EstIcI committed Jun 3, 2024
1 parent 0cca57b commit 67f93db
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 22 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Tout ça affichait dans une fenêtre Tkinter.
- [ ] Afficher les autres chemins possibles avec leurs distances [Bonus].
- [x] Faire qu'on puisse générer avec un bouton [Bonus]
- [x] Faire qu'on puisse le résoudre depuis l'app avec des boutons [Bonus]
- [ ] Pouvoir gérer la grandeur du labyrinthe à générer sans devoir modifier le code [Bonus]
- [x] Pouvoir gérer la grandeur du labyrinthe à générer sans devoir modifier le code [Bonus]
#### Mur :
- [x] Créer des murs sur toutes les cases du tableau de 25x25.
- [x] Définir une entrée et une sortie.
Expand Down
Binary file modified __pycache__/res_lab.cpython-311.pyc
Binary file not shown.
41 changes: 20 additions & 21 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,23 @@
app.geometry("800x550")
app.resizable(False, False)

# Création d'un cadre pour contenir les boutons
button_frame = tk.Frame(app)
button_frame.pack(side=tk.TOP)

# Création du canevas
canvas = tk.Canvas(app, width=0, height=0) # initialiser le canevas avec une taille arbitraire
canvas.pack()

labyrinthe_global = None
dim_global = 25 # dimension du labyrinthe (max lisible 101)
dim_global = tk.IntVar(value=25) # Valeur de la dimension de base : 25

def affiche_lab():
global labyrinthe_global, dim_global
global labyrinthe_global
'''
Affiche le labyrinthe sur l'application tkinter
'''
dimcanva=500/dim_global
dimcanva = 500 / dim_global.get()

gen = GenLab(dim_global) # GenLab(dimension)
gen = GenLab(dim_global.get()) # Utiliser la dimension sélectionnée
labyrinthe_global = gen.dessine_lab()


canvas.config(width=len(labyrinthe_global[0]) * dimcanva, height=len(labyrinthe_global) * dimcanva)
canvas.delete("all") # effacer tout ce qui est dessiné précédemment sur le canvas

Expand All @@ -38,41 +33,45 @@ def affiche_lab():
for j, case in enumerate(ligne):
if case == 1:
canvas.create_rectangle(j * dimcanva, i * dimcanva, (j + 1) * dimcanva, (i + 1) * dimcanva, fill="black")
elif case==2:
elif case == 2:
canvas.create_rectangle(j * dimcanva, i * dimcanva, (j + 1) * dimcanva, (i + 1) * dimcanva, fill="green")
elif case==3:
elif case == 3:
canvas.create_rectangle(j * dimcanva, i * dimcanva, (j + 1) * dimcanva, (i + 1) * dimcanva, fill="red")
else:
canvas.create_rectangle(j * dimcanva, i * dimcanva, (j + 1) * dimcanva, (i + 1) * dimcanva, fill="white")



def resoudre_lab():
global labyrinthe_global, dim_global
global labyrinthe_global
# Récupérer le labyrinthe et la dimension depuis la fonction affiche_lab
lab_resolu = res_lab.res_lab(labyrinthe_global, dim_global)
dimcanva = 500 / dim_global
lab_resolu = res_lab.res_lab(labyrinthe_global, dim_global.get())
dimcanva = 500 / dim_global.get()
canvas.delete("all") # Effacer tout ce qui est dessiné précédemment sur le canvas

# Parcours du labyrinthe pour dessiner les murs et les espaces
labyrinthe_global[1][1]=2
labyrinthe_global[dim_global-2][dim_global-2]=3
labyrinthe_global[1][1] = 2
labyrinthe_global[dim_global.get() - 2][dim_global.get() - 2] = 3

for i, ligne in enumerate(lab_resolu):
for j, case in enumerate(ligne):
if case == 1:
canvas.create_rectangle(j * dimcanva, i * dimcanva, (j + 1) * dimcanva, (i + 1) * dimcanva, fill="black")
elif case==2:
elif case == 2:
canvas.create_rectangle(j * dimcanva, i * dimcanva, (j + 1) * dimcanva, (i + 1) * dimcanva, fill="green")
elif case==3:
elif case == 3:
canvas.create_rectangle(j * dimcanva, i * dimcanva, (j + 1) * dimcanva, (i + 1) * dimcanva, fill="red")
elif case==5:
elif case == 5:
canvas.create_rectangle(j * dimcanva, i * dimcanva, (j + 1) * dimcanva, (i + 1) * dimcanva, fill="lime")
else:
canvas.create_rectangle(j * dimcanva, i * dimcanva, (j + 1) * dimcanva, (i + 1) * dimcanva, fill="white")


# Zone des Boutons
button_frame = tk.Frame(app)
button_frame.pack(side=tk.BOTTOM)

dimensions = [15,25,35,45,55,65,75,85,95,105]
dim_menu = tk.OptionMenu(button_frame, dim_global, *dimensions)
dim_menu.pack(side=tk.LEFT, padx=5, pady=5)

gen_button = tk.Button(button_frame, text="Générer Labyrinthe", command=affiche_lab)
gen_button.pack(side=tk.LEFT, padx=5, pady=5)
Expand Down

0 comments on commit 67f93db

Please sign in to comment.