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
- Programme demarrage windows - Guide
- Citizen code python - Accueil - Outils
- Mettre en veille un programme - Guide
- Programme word gratuit - Guide
- 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