Programme en python problème
Bonjour,
je ne comprends pas ce qui cloche dans mon programme, la consigne est simple il faut que le programme affiche des lapins (L), des renards (R) et de l'herbe (.) ce qui donne ceci :
L...................
...L................
.....R..L...........
..R.......L.........
....................
........L...........
........L...........
....................
...................L
...L........L..L...L
et je dois pouvoir déplacer des animaux ou encore les compter. Mais je bloque sans comprendre pourquoi mon programme ne fonctionne pas le voici.
import random # initialisation de la carte carte = [['.' for j in range(20)] for i in range(10)] # Ajout des lapins aux coordonnées spécifiées lapins_coords = [(0, 0), (1, 3), (9, 12), (6, 8), (9, 15), (8, 19), (9, 19), (3, 10), (2, 8), (9, 3), (5, 8)] for coord in lapins_coords: carte[coord[0]][coord[1]] = 'L' # Ajout des renards aux coordonnées spécifiées renards_coords = [(2, 5), (3, 2)] for coord in renards_coords: carte[coord[0]][coord[1]] = 'R' # Fonction pour afficher la carte def afficheCarte(carte): for i in range(len(carte)): for j in range(len(carte[0])): print(carte[i][j], end="") print("") # Fonction pour ajouter un animal à la carte def ajouterAnimal(carte): animal = input("Ajouter un animal (L pour lapin, R pour renard) : ") x = int(input("Entrez la coordonnée x : ")) y = int(input("Entrez la coordonnée y : ")) if x >= 20 or x < 0 or y >= 10 or y < 0: print("Erreur : coordonnées invalides") else: carte[y][x] = animal return carte # Fonction pour déplacer un animal sur la carte def deplacerAnimal(carte, animal): x = int(input("Entrez la coordonnée x de l'animal à déplacer : ")) y = int(input("Entrez la coordonnée y de l'animal à déplacer : ")) if x >= 20 or x < 0 or y >= 10 or y < 0: print("Erreur : coordonnées invalides") return carte if carte[y][x] != animal: print("Erreur : pas d'animal de ce type à ces coordonnées") return carte direction = input("Entrez la direction souhaitée (haut, bas, gauche ou droite) : ") if direction == "haut": if y == 0: print("Erreur : l'animal ne peut pas sortir de la carte") else: if carte[y-1][x] == ".": carte[y-1][x] = animal carte[y][x] = "." elif carte[y-1][x] == "L" and animal == "R": print("Un lapin s'est fait manger par un renard !") carte[y-1][x] = animal carte[y][x] = "." elif carte[y-1][x] == "R" and animal == "L": print("Un lapin s'est fait manger par un renard !") carte[y][x] = "." else: print("Erreur : il y a un autre animal à ces coordonnées") elif direction == "bas": if y == 9: print("Erreur : l'animal ne peut pas sortir de la carte") else: if carte[y+1][x]
Si vous voulez bien m'aider ! J'espère que quelqu'un aura la solution, sinon tant pis, merci quand même pour votre considération.
Au revoir.
- Programme en python problème
- Citizen code python avis - Accueil - Outils
- Programme demarrage windows - Guide
- Mettre en veille un programme - Guide
- Ce programme est écrit en python compléter le ✓ - Forum Python
- Message programmé iphone - Guide
2 réponses
Bonjour,
Il manque la suite après la ligne 65.
Donc on ne voit pas comment tu lances les fonctions.
Enfin ne dois-tu pas utiliser une fenêtre graphique qui ferait, après modification, se ré-afficher la carte au même endroit ? Car là tu vas à chaque fois afficher une nouvelle carte, en dessous de la précédente à l'écran.
Bonjour,
Peux-tu aussi nous indiquer pourquoi le programme (une fois complété) ne fonctionne pas ? Quel est le comportement attendu ?
En tout cas, je pense qu'il manque au moins une chose dans l'extrait que tu as partagé : quand un animal disparaît, il faut le supprimer le la liste correspondante, sans quoi il sera affiché la prochaine fois que tu redessineras la carte et faussera le décompte des animaux. Pour cela, tu peux notamment utiliser del en python (voir ici).
Bonne chance