Je suis débutant en Python je voudrais réussir à écrire un algorithme qui permet de générer un labyrinthe à partir d'un fichier de base texte comme celui-ci :
0 1 0 0 0 0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0
(hilbert.txt dans l'algorithme)
L'idée est de dupliquer l'image et d'y appliquer des rotations pour que les 1 se rejoignent et forment au final un labyrinthe mais mes essais ne sont pas bien concluants
Voilà le meilleur résultat auquel je suis parvenu pour l'instant :
import numpy as np import matplotlib.pyplot as plt x = 0 fig = plt.figure() # --- DEBUT DE LA CONFIGURATION ---#
#Nombre de repetitions voulues : u = 2 #Choix du Pattern :
base = np.loadtxt("hilbert.txt" ) # --- FIN DE LA CONFIGURATION ---# while x != u : hg = np.fliplr(np.rot90(base)) base2 = np.vstack((hg,base)) base2 = np.hstack((base2,np.fliplr(base2))) base2 = np.rot90(base2)
x+=1 base = base2 a = np.shape(base) n = a[0] # -- axe Y -- # p = a[1] # -- axe X -- # base [n-1, p-2] = 1 base [n-2, p-1] = 0
im = plt.imshow(base2, interpolation='None', cmap='gist_gray') plt.show()
Marsh Posté le 27-01-2013 à 19:14:45
Bonjour,
Je suis débutant en Python je voudrais réussir à écrire un algorithme qui permet de générer un labyrinthe à partir d'un fichier de base texte comme celui-ci :
0 1 0 0 0
0 1 1 1 0
0 0 0 1 0
1 1 1 1 0
0 0 0 0 0
(hilbert.txt dans l'algorithme)
L'idée est de dupliquer l'image et d'y appliquer des rotations pour que les 1 se rejoignent et forment au final un labyrinthe mais mes essais ne sont pas bien concluants
Voilà le meilleur résultat auquel je suis parvenu pour l'instant :
import numpy as np
import matplotlib.pyplot as plt
x = 0
fig = plt.figure()
# --- DEBUT DE LA CONFIGURATION ---#
#Nombre de repetitions voulues :
u = 2
#Choix du Pattern :
base = np.loadtxt("hilbert.txt" )
# --- FIN DE LA CONFIGURATION ---#
while x != u :
hg = np.fliplr(np.rot90(base))
base2 = np.vstack((hg,base))
base2 = np.hstack((base2,np.fliplr(base2)))
base2 = np.rot90(base2)
x+=1
base = base2
a = np.shape(base)
n = a[0] # -- axe Y -- #
p = a[1] # -- axe X -- #
base [n-1, p-2] = 1
base [n-2, p-1] = 0
im = plt.imshow(base2, interpolation='None', cmap='gist_gray')
plt.show()
Merci d'avance pour votre aide.