Labyrinthe à bille
mistoufleee Messages postés 19 Date d'inscription Statut Membre Dernière intervention -
yg_be Messages postés 23538 Date d'inscription Statut Contributeur Dernière intervention - 10 mars 2018 à 19:49
yg_be Messages postés 23538 Date d'inscription Statut Contributeur Dernière intervention - 10 mars 2018 à 19:49
2 réponses
bonjour,
"ma boucle ne marche pas": comment se comporte-t-elle?
merci de partager le texte du programme, en utilisant la coloration syntaxique, et pas l'image du programme.
pourrais-tu expliquer la logique de ton algorithme? je crois deviner que "5" marque la position de la bille. cependant, on dirait que tu oublies de tenir compte de cette position. ne devrais-tu pas mémoriser les coordonnées de cette position?
"ma boucle ne marche pas": comment se comporte-t-elle?
merci de partager le texte du programme, en utilisant la coloration syntaxique, et pas l'image du programme.
pourrais-tu expliquer la logique de ton algorithme? je crois deviner que "5" marque la position de la bille. cependant, on dirait que tu oublies de tenir compte de cette position. ne devrais-tu pas mémoriser les coordonnées de cette position?
while True: deplacement = input("Quel deplacement souhaitez-vous effectuer ?") if deplacement == "Droite": dl=0 dc=1 elif deplacement == "Gauche": dl=0 dc=-1 elif deplacement == "Bas": dl=1 dc=0 elif deplacement == "Haut": dl=-1 dc=0 else : continue while A[ligne+dl,colonne+dc]==2 : A[ligne,colonne] = 2 colonne = colonne + dc ligne=ligne+dl A[ligne,colonne] = 5 print(A) if A[ligne,colonne] == 0: print("Game Over") return elif A[ligne,colonne] == 4: print("Well play") return
dl et dc représentent le déplacement choisi. par exemple, aller à gauche, c'est rester sur la même ligne (dl=0) et augmenter de 1 le numéro de colonne (dc=1).
le deuxième while,
fait ceci: tant que la case suivante (dans le sens du déplacement) contient 2, on enregistre 2 dans la case où se trouve la bille, et on met 5 dans la case suivante, qui devient la case courante.
le deuxième while,
while A[ligne+dl,colonne+dc]==2 : A[ligne,colonne] = 2 colonne = colonne + dc ligne=ligne+dl A[ligne,colonne] = 5
fait ceci: tant que la case suivante (dans le sens du déplacement) contient 2, on enregistre 2 dans la case où se trouve la bille, et on met 5 dans la case suivante, qui devient la case courante.
Qu'entendez-vous par comment se comporte-elle ? Je vous avoue que j'ai commencé cette année la programmation....
De plus, je ne sais pas comment utiliser la coloration syntaxique sur ce site...
quand tu atteins un mur, je pense qu'il faut simplement arrêter la boucle, sans rien changer dans le tableau
dans le cas "else", il faut mettre 2 en (0,k-1), et mettre 5 en (0,k)
Peut-être qu'il manque un k=k+1 quelque part pour que la boucle continue a tourner...?
dans le cas "else", il faut mettre 2 en (0,k-1), et mettre 5 en (0,k) (et, évidemment, ne pas faire return dans le else)