Toiles et cailloux#
Commençons par un petit échauffement avant d’attaquer le défi ci-dessous.
Indication : quand il y a une toile, on peut la détruire avec un caillou.
Attention
Cet exercice est marqué d’un ♣ et est donc d’un niveau plus avancé ; n’hésitez pas à le passer s’il vous paraît difficile afin de ne pas perdre trop de temps, et à revenir dessus ultérieurement.
from laby.global_fr import *
carte = """
o o o o o o
o → . r w x
o o o o o o
"""
Laby(carte=carte)
/builds/py-edu-fr/py-edu-fr/intro-prog/.venv/lib/python3.12/site-packages/laby/laby.py:337: SyntaxWarning: invalid escape sequence '\w'
p = re.compile("[A-Z]+(\w)*")
debut()
### BEGIN SOLUTION
avance()
prend()
avance()
pose()
prend()
droite()
droite()
pose()
droite()
droite()
avance()
### END SOLUTION
ouvre()
assert est_gagnant()
Comment résoudre le labyrinthe suivant ?
Attention, le nombre de cailloux / toiles varie !
À faire
Rédiger une solution et remettre la cellule de test.
from laby.global_fr import *
Laby(lignes=1, colonnes=10, option="rocksAndWebs")
debut()
### BEGIN SOLUTION
def pose_derriere():
droite()
droite()
pose()
droite()
droite()
def neutralise():
pose()
prend()
avance()
def retourner_chercher_caillou():
droite()
droite()
while (regarde() != Caillou):
avance()
prend()
droite()
droite()
while (regarde() == Vide):
avance()
droite()
while (regarde() != Sortie):
if regarde() == Caillou:
prend()
avance()
pose_derriere()
elif regarde() == Toile:
retourner_chercher_caillou()
neutralise()
pose_derriere()
else:
avance()
ouvre()
### END SOLUTION