Résumé et test du jeu
Exclusif Premium
Débloquez votre potentiel ! ✨
Cette session fait partie de notre programme Premium exclusif
+100h de formations exclusives
+180 exercices de code avancés
+100h de mentorats en réécriture
20 projets guidés pas à pas
Mentorats groupés hebdomadaires
Support individuel avec nos mentors
Prêt à passer au niveau supérieur ?
Découvrez tous les avantages Premium et transformez votre apprentissage dès aujourd'hui!
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compteToutes les questions

Alexis
6 mai 2024
Résolue
2 réponses
Demande de retour sur ma version du jeu
Bonjour, je me permets de poster mon code afin d'avoir un petit retour. Il fonctionne correctement et je voulais savoir si tu avais quelques remarques d'améliorations à faire (j'imagine bien que oui^^)
Merci pour ton temps et pour la formation de très bonne qualité !
Alexis
```
from random import randint
pv_heros = 50
pv_ennemi = 50
stock_potions = 3
Soin = False
print("Que le combat commence !🤼")
while pv_heros > 0 and pv_ennemi > 0:
print(f"Il vous reste {pv_heros} PV.🩸")
print(f"Il reste {pv_ennemi} PV à votre ennemi.🩸")
print("-"*50)
if Soin == True:
attaque_ennemi = randint(5, 15)
print("Vous passez votre tour...")
print(f"Votre adversaire vous inflige {attaque_ennemi} points de dégats.🗡️")
pv_heros -= attaque_ennemi
Soin = False
else:
action = input("Que souhaitez vous faire ? Attaquer (1) ou Vous Soigner (2)")
if action == "1":
attaque_heros = randint(5, 10)
print(f"Vous infligez {attaque_heros} points de dégats.🗡️")
pv_ennemi -= attaque_heros
if pv_ennemi >= 0:
attaque_ennemi = randint(5, 15)
print(f"Votre adversaire vous inflige {attaque_ennemi} points de dégats.🗡️")
pv_heros -= attaque_ennemi
elif action == "2":
if stock_potions > 0:
soin = randint(15, 50)
print(f"Vous utilisez une potion et vous soignez de {soin} PV 💉")
pv_heros += soin
stock_potions -= 1
attaque_ennemi = randint(5, 15)
print(f"Votre adversaire vous inflige {attaque_ennemi} points de dégats.🗡️")
pv_heros -= attaque_ennemi
Soin = True
else:
print("Vous n'avez plus de potion. ❌")
else:
print("Veuillez rentrer une commande valide.")
if pv_heros <= 0:
print("Votre ennemi vous a térassé...")
else:
print("Bravo ! Vous avez vaincu votre adversaire !")
print(f"Il vous reste {pv_heros} PV !")
```

Issiaka
28 août 2023
Résolue
1 réponse
bonjour. je voulais vous exposer ma version pour voir si elle est optimiser et ce que vous en pensee
```
import random
import os
rules = """\t📜RULES📜
1) Le jeu comporte deux joueurs, donc vous et un ennemi
2) Vous, comme le joueur, vous commencez avec le même nombre de points de vie, donc avec 50 points de vie
3) Vous avez un avantage, c'est que vous avez trois potions qui vous permettent de récupérer des points de vie (15 ~ 50 HP)tandis que l'ennemi, lui ne dispose d'aucune potion.
4) Pour un equilibre des forces l'enemis peut vous infliger 5 ~ 15 point de degat tandis que vous ne pouvez infliger que 5 ~ 10 point de degat
5) Également, lorsque vous choisissez d'utiliser une potion plutôt que d'attaquer, vous récupérez des points de vie, sauf que l'ennemi va vous attaquer au même tour et le tour d'après
\t😊Bonne chance a vous😊
\t\tVeuillez taper entrer pour commencer le jeux """
a = input(rules)
if a == "":
os.system('cls')
else:
os.system('cls')
user = ""
user_HP = AI_HP = 50
item = 3
choix = str(list(range(1, 3)))
choix = choix[1: -1]
choix = choix.replace(" ", "")
choix = choix.replace(",", "")
user_extra_HP = 0
while AI_HP > 0 or user_HP > 0:
AI_ATK = random.randint(5, 15)
text_2 = f"""l'enemi vous a infliger {AI_ATK} de degat🔥🐉."""
text_4 = "Votre tour fu passe suite a votre derniere action🙃🙃\n"
if user_extra_HP == 0:
text_1 = f"Souhaitez-vous attaquer ({choix[0]}) ou utiliser une poiton ({choix[1]})? "
user_ATK = random.randint(5, 10)
text_3 = f"""Vous avez infliger {user_ATK} de degat a l'ennemi.🤺⚔️\n"""
print('-' * 50)
user = input(text_1)
if user not in choix:
continue
elif user == choix[0]:
print(text_3)
AI_HP -= user_ATK
if AI_HP >0:
print(text_2)
user_HP -= AI_ATK
if user_HP > 0 and AI_HP > 0:
text_6 = f"""il vous reste {user_HP} de point de vie🩸💓.
il reste a l'ennemi {AI_HP} de point de vie🩸💓."""
print(text_6)
else:
if user_HP <= 0:
print("Vous avez perdu😓😓 \n Fin du jeux")
if AI_HP <= 0:
print("Vous avez gagner💪💪 \n Fin du jeux")
break
elif user == choix[1]:
user_HP -= AI_ATK
item -= 1
if item > 0:
user_extra_HP = random.randint(10, 20)
text_5 = f"Vous recuperer {user_extra_HP} de point de vie🩸💓 (il vous reste {item} potion🧪🧫{'s' if item >1 else ''})\n"
user_HP += user_extra_HP
text_2 = f"""l'enemi vous a infliger {AI_ATK} de degat🔥🐉.\n"""
print(text_5, text_2)
if user_HP <= 0:
print("Vous avez perdu😓😓 \n Fin du jeux")
break
else:
text_6 = f"""il vous reste {user_HP} de point de vie🩸💓.
il reste a l'ennemi {AI_HP} de point de vie🩸💓."""
print(text_6, "\n", "-" * 50)
continue
else:
print("Vous n'avez plus de potion.")
continue
else:
user_HP -= AI_ATK
text_6 = f"""\nil vous reste {user_HP} de point de vie🩸💓.
il reste a l'ennemi {AI_HP} de point de vie.🩸💓"""
print(text_4, text_2)
if user_HP >0:
print(text_6)
else:
print("Vous avez perdu😓😓 \n Fin du jeux")
break
user_extra_HP = 0
user = "2"
continue
```
00:00:00 :Pour la structure du jeu, vous voyez que c'est assez logique, si vous avez écrit toutes lesétapes avant de les faire en code, normalement vous devriez arriver à quelque chose d'assezsimilaire. Tout ce qu'on a fait ici en Python, c'est juste l'expression de la logique de jeu
00:00:15 :qui était décrite dans l'énoncé. Après il faut savoir bien entendu traduire toutes ces étapes,donc par exemple soustraire des points de vie qu'on va faire avec "-=", faire des vérificationsqu'on va faire avec des structures conditionnelles, donc des if, des else, faire une boucle avec lewhile, donc toute cette logique que l'on va faire dans notre jeu et qui peuvent être traduites à
00:00:34 :partir d'un énoncé en français. Donc avant de vous laisser, on va quand même tester que toutfonctionne, donc je vais lancer le script et on va voir si mon projet fonctionne, c'est le casnormalement puisque je l'ai testé avant d'enregistrer cette vidéo. Donc on me demande déjà si je
00:00:47 :souhaite attaquer ou utiliser une potion, on va tester donc déjà autre chose que ces deux optionspour voir si ça fonctionne. Donc là ça fonctionne dans le sens où ça ne fonctionne pas, si vous me
00:00:56 :comprenez, c'est à dire que ça ne fait pas planter le script, ça me raffiche le choix puisque j'ai faitun choix qui n'était pas valide. Donc là tant que je mets quelque chose qui n'est pas valide, on me
00:01:04 :repose la question. Si j'ai quelque chose de valide, donc par exemple avec le 1, qui va me permettred'attaquer, on va calculer les points de dégâts que j'inflige, donc dans ce cas-ci 8 points de dégâtsà l'ennemi. On va vérifier ensuite si l'ennemi est toujours vivant ou non, là comme on a des points
00:01:19 :qui sont compris entre 5 et 10 et que l'ennemi a 50 points de vie, et bien c'est impossible de letuer dès le premier tour, donc forcément on ne peut pas passer dans cette structure ici, donc lastructure qui indique que j'ai gagné, voilà celle-ci ici, puisque les points de vie sont encore
00:01:31 :supérieurs à 0. Donc dans ce cas-ci l'ennemi attaque, lui il m'a infligé 7 points de dégâts, donc ilm'en reste 43, l'ennemi 42. On a bien cette ligne qui s'affiche entre les différents tours qui me
00:01:41 :permet de séparer les choses et d'y voir un peu plus clair, et je vais pouvoir continuer donc lesboucles comme ceci. Donc je vais attaquer de nouveau, 9 points pour les deux, donc j'ai encore un peu
00:01:50 :plus de points de vie que lui, je continue d'attaquer, je continue encore d'attaquer, alors il m'enreste encore pas mal, je vais continuer d'attaquer, et là vous voyez qu'il m'a infligé pas mal plusde points de dégâts que moi, donc là je suis en mauvaise posture, j'ai 7 points de vie, lui il en a
00:02:03 :10, donc on va utiliser une potion et on va par la même occasion vérifier que je passe bien montour. Donc j'utilise l'option numéro 2, j'ai utilisé l'option numéro 2 ici, ça a fait en sorte qu'on
00:02:14 :a récupéré des points de vie, donc j'ai récupéré 34 points de vie, il me reste 2 potions, donc c'estlogique, on commence avec 3, j'en ai utilisé une donc il ne m'en reste plus que deux, l'ennemiensuite m'affiche des points de dégâts, donc on affiche ensuite les points qu'il me reste, donc il
00:02:28 :m'en reste 35 et 10 pour lui, on a bien le tour qui est passé, donc vous passez votre tour, donc çac'est normal, l'ennemi qui attaque, lui il ne passe pas son tour, il attaque à tous les tours, donc ilattaque, on est à 24-10, donc là je vais continuer d'attaquer et j'ai gagné puisque j'ai infligé
00:02:42 :précisément 10 points de dégâts et il ne restait plus que 10 points de vie à l'ennemi, donc là onest rentré dans cette condition, puisque ennemi health était dans ce cas-ci égal à 0 et là lacondition c'est inférieur ou égal à 0, donc on est passé dans cette condition, on a affiché tu as
00:02:56 :gagné, on a fait un break qui nous permet de sortir de la boucle et on affiche fin du jeu et voilàj'ai gagné la partie. Donc voilà pour ma solution à ce projet, ce projet de jeu de rôle, vous voyez
00:03:06 :qu'avec la façon dont on a créé nos variables ici, c'est assez facile de tester différentesconfigurations, avec par exemple un ennemi qui aurait moins de points de vie ou plus de points devie ou avec un nombre de différentes potions, on pourrait même penser récupérer ces valeurs ici,donc le 5 et le 15 qui est l'étendue en fait de l'attaque que peut infliger l'ennemi et pareil
00:03:25 :avec mon tour ici, donc si je vais dans l'attaque avec le user choice qui est égal à 1, voilà 5 et10, on pourrait penser à mettre ces valeurs, donc le 5 et le 10 et le 5 et le 15 ici, dans desvariables globales qu'on mettrait au début de notre script, comme ça ce serait encore plus facile de
00:03:38 :tester avec différentes étendues pour mon attaque et pour l'attaque de l'ennemi, donc ça c'estquelque chose qu'on fait assez régulièrement, de mettre toutes les valeurs qui peuvent êtremodifiées tout au début de notre script pour ne pas avoir à aller fouiller à l'intérieur duscript pour modifier ces valeurs qui peuvent nous faire tester différentes configurations
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.