Aide code python tableau a deux dimension
Bonjour a tous je suiis debutant sur python j'ai besoin d'aide sur un projet, j'ai fait le debut mais je bloque un peu sur la fin
on me demande de creer Créer une fonction deplacePersonnage qui prend deux arguments : la carte (carte), et les coordonnées du personnage (coordonnées_perso). Cette fonction :
demande à l’utilisateur la direction vers laquelle déplacer le personnage (n=Nord, s=Sud, e=Est, o=Ouest) ou q (pour quitter le jeu). Si q est tapé, la fonction retournera -1000
Le tableau de coordonnées coordonnees_perso sera réactualisé en fonction du déplacement du personnage:
en tenant compte des obstacles du tableau : le personnage ne peut pas passer à travers un obstacle. Il reste sur place.
le personnage ne peut pas aller au-delà d’un bord de la carte, il reste sur place
dans tous les autres cas, le personnage se déplace dans la direction souhaitée par le joueur.
la carte est actualisée suivant le type de case sur laquelle s’est arrêté le personnage :
le sol : pas de changement sur cette case
un obstacle, le personnage n’a pas pu aller sur cette case qui reste inchangée
de la nourriture : la nourriture disparait (puisque le joueur la prend) et la case devient sol
un prédateur : le prédateur reste, pas de changement sur cette case.
la fonction retourne la valeur en terme de perte ou gain d’énergie de la case sur laquelle le joueur s’était arrêté ;
pour le sol : suivant le sol sur lequel le personnage se déplace, il perd 1, 2 ou 3 points d’énergie, la fonction retourne donc -1, -2 ou -3.
pour la nourriture: suivant la nourriture sur laquelle le personnage est tombé, il gagne 5, 10 ou 15 points d’énergie, la fonction retourne donc 5, 10 ou 15
pour les prédateurs: suivant le prédateur sur lequel le personnage est tombé, il perd 5, 10 ou 15 points d’énergie, la fonction retourne donc -5, -10 ou -15
si le personnage n’a pu se déplacer à cause d’un obstacle ou du bord, il n’y a ni gain ni perte d’énergie, et la fonction retourne 0
dans le cas où le personnage est arrivé à la case maison, la valeur 1000 est retournée
Déplacement
En appelant les fonctions deplacePersonnage et afficheCarte, le joueur peut déplacer son personnage . La carte éventuellement mise à jour et avec la nouvelle position du joueur doit être réaffichée à chaque fois. Tant que le personnage n’a pas rejoint sa maison et que le personnage n’est pas mort (énergie tombé à 0), le joueur continuera à déplacer son personnage.
Le jeu
Un compteur d’énergie (initialement à 50) est incrémentée ou décrémenté au fur et à mesure des déplacements et actions du personnage.
Complétez votre programme afin que :
le compteur d’énergie soit réactualisé en fonction des évènements et affiché à chaque réactualisation de la carte
le jeu se termine dans un des trois cas suivants :
le joueur est arrivé à la maison (la fonction deplacePersonnage a retourné 1000). Dans ce cas, le joueur a gagné
le joueur est passé à 0 point d’énergie. Dans ce cas, il a perdu
le joueur a appuyé sur « q » pour quitter volontairement le jeu (la fonction deplacePersonnage a retourné -1000). Dans ce cas, le jeu se termine.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| import random
abscisse = 10
ordonnee = 20
grille=[]
T=["S1","S2","S3","O1","O2","O3","N1","N2","N3","P1","P2","P3"]
maison="M"
for i in range (ordonnee):
nouvelle_ligne=[]
for j in range (abscisse):
a=T[random.randint(0,11)]
nouvelle_ligne.append (a)
grille.append (nouvelle_ligne)
def afficheCartePourDebug(ordonnee,abscisse):
for i in range (ordonnee):
for j in range (abscisse):
print(str(grille[i][j]),end="\t")
print()
grille[19][9]="M"
grille[1][1]="X"
def afficheCarte(grille):
for i in range (ordonnee):
for j in range (abscisse):
if grille[i][j]=="N1":
grille[i][j]="*"
elif grille[i][j]=="N2":
grille[i][j]="**"
elif grille[i][j]=="N3":
grille[i][j]="***"
elif grille[i][j]=="S1":
grille[i][j]="+"
elif grille[i][j]=="S2":
grille[i][j]="++"
elif grille[i][j]=="S3":
grille[i][j]="+++"
elif grille[i][j]=="O1":
grille[i][j]="0"
elif grille[i][j]=="O2":
grille[i][j]="00"
elif grille[i][j]=="O3":
grille[i][j]="000"
print(str(grille[i][j]),end="\t")
print()
afficheCarte(grille) |