Projet Laby – au moins en console pour tous !

Ce travail est à la fois l’aboutissement de notre petit projet de janvier / février et une belle préparation du test de demain.

Pour ceux qui ont toujours du mal à commencer, un squelette de départ ci-dessous.

largeur = 13
hauteur = 8

L = [[0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0],
     [0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0],
     [1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1],
     [0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0],
     [0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0],
     [0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
     [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]

def affichage(t, n, p):
    pass

def colorerVisite(L, case):
    pass
    #affichage(L, hauteur, largeur)

def colorerImpasse(L, case):
    pass
    #affichage(L, hauteur, largeur)

def voisins(L, case):
    ligne, col = case
    v = []
    pass
    return v

def f(L, debut, fin):
    colorerVisite(L, debut)  # bleu
    for case in voisins(L, debut):
        if case == fin or f(L, case, fin):
            return True
    colorerImpasse(L, debut)
    return False

affichage(L, hauteur, largeur)

depart = 0, 0
arrivee = hauteur -1, largeur -1
print(f(L, depart, arrivee))

Ce qui donne en console :

0 0 0 1 0 0 1 1 1 0 0 0 0 
0 1 0 0 0 1 0 0 0 0 1 1 0 
1 1 1 1 0 1 0 1 0 1 0 1 1 
0 0 0 1 0 0 0 1 0 1 0 0 0 
0 1 0 1 1 1 1 0 0 0 1 1 0 
0 1 0 0 0 0 0 0 1 0 0 0 0 
0 1 1 1 1 1 1 1 1 1 1 1 1 
0 0 0 0 0 0 0 0 0 0 0 0 0
 
2 0 0 1 0 0 1 1 1 0 0 0 0 
0 1 0 0 0 1 0 0 0 0 1 1 0 
1 1 1 1 0 1 0 1 0 1 0 1 1 
0 0 0 1 0 0 0 1 0 1 0 0 0 
0 1 0 1 1 1 1 0 0 0 1 1 0 
0 1 0 0 0 0 0 0 1 0 0 0 0 
0 1 1 1 1 1 1 1 1 1 1 1 1 
0 0 0 0 0 0 0 0 0 0 0 0 0 

2 0 0 1 0 0 1 1 1 0 0 0 0 
2 1 0 0 0 1 0 0 0 0 1 1 0 
1 1 1 1 0 1 0 1 0 1 0 1 1 
0 0 0 1 0 0 0 1 0 1 0 0 0 
0 1 0 1 1 1 1 0 0 0 1 1 0 
0 1 0 0 0 0 0 0 1 0 0 0 0 
0 1 1 1 1 1 1 1 1 1 1 1 1 
0 0 0 0 0 0 0 0 0 0 0 0 0 

2 0 0 1 0 0 1 1 1 0 0 0 0 
3 1 0 0 0 1 0 0 0 0 1 1 0 
1 1 1 1 0 1 0 1 0 1 0 1 1 
0 0 0 1 0 0 0 1 0 1 0 0 0 
0 1 0 1 1 1 1 0 0 0 1 1 0 
0 1 0 0 0 0 0 0 1 0 0 0 0 
0 1 1 1 1 1 1 1 1 1 1 1 1 
0 0 0 0 0 0 0 0 0 0 0 0 0 

2 2 0 1 0 0 1 1 1 0 0 0 0 
3 1 0 0 0 1 0 0 0 0 1 1 0 
1 1 1 1 0 1 0 1 0 1 0 1 1 
0 0 0 1 0 0 0 1 0 1 0 0 0 
0 1 0 1 1 1 1 0 0 0 1 1 0 
0 1 0 0 0 0 0 0 1 0 0 0 0 
0 1 1 1 1 1 1 1 1 1 1 1 1 
0 0 0 0 0 0 0 0 0 0 0 0 0 

2 2 2 1 0 0 1 1 1 0 0 0 0 
3 1 0 0 0 1 0 0 0 0 1 1 0 
1 1 1 1 0 1 0 1 0 1 0 1 1 
0 0 0 1 0 0 0 1 0 1 0 0 0 
0 1 0 1 1 1 1 0 0 0 1 1 0 
0 1 0 0 0 0 0 0 1 0 0 0 0 
0 1 1 1 1 1 1 1 1 1 1 1 1 
0 0 0 0 0 0 0 0 0 0 0 0 0 

(...)

2 2 2 1 0 0 1 1 1 0 0 0 0 
3 1 2 2 2 1 2 2 2 0 1 1 0 
1 1 1 1 2 1 2 1 2 1 3 1 1 
2 2 2 1 2 2 2 1 2 1 3 3 3 
2 1 2 1 1 1 1 2 2 3 1 1 3 
2 1 2 2 2 2 2 2 1 3 3 3 3 
2 1 1 1 1 1 1 1 1 1 1 1 1 
2 2 2 2 2 2 2 2 2 2 2 2 0 

True

N'hésitez-pas à poser une question, ou faire avancer le schmilblick

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.