- Question 1 :
def attaque():
global vie
vie -= 25
vie = 40
attaque()
XXXXXXXXX
attaque()
XXXXXXXXX
Complétez le code précédent en créant une procédure qui teste si le personnage est mort ou vivant.
Faite appel à cette procédure à la place des XXXXXXXXX.
def attaque():
global vie
vie -= 25
def vivant(vie):
if vie <= 0 :
print "Le personnage est mort."
else :
print "il reste", vie, "points de vie."
vie = 40
attaque()
vivant(vie)
attaque()
vivant(vie)
- Question 2 :
Faites le jeu des gobelets. Ce jeux consiste à cacher une balle sous un des trois gobelets présents en jeu. Après un mélange des gobelets, le joueur doit retrouver où est la balle.
Le mélange se fait avec le code suivant :
import random
gobelet = random.randint(1,3)
Avec ce code, la variable "gobelet" contiendra un nombre entier compris entre 1 et 3. Si la variable contient le chiffre 1, la balle est donc sous le gobelet 1, etc...
Demandez à l'utilisateur sous quel gobelet est présent la balle et testez s'il a gagné.
import random
gobelet = random.randint(1,3)
joueur = input("Sous quel gobelet est cachée la balle ? répondez par 1,2 ou 3 ")
if joueur == gobelet :
print "Bravo, vous avez trouvé l'emplacement de la balle."
else :
print "Désolé, elle était sous le gobelet", gobelet
- Question 2.1 :
Si l'utilisateur répond 4 à la question précédente et que le programme ne trouve pas ceci bizarre, corrigez ce programme en testant si la réponse de l'utilisateur est bien l'un des trois gobelets.
import random
gobelet = random.randint(1,3)
joueur = input("Sous quel gobelet est cachée la balle ? répondez par 1,2 ou 3 ")
if joueur <1 or joueur >3:
print "Il n'y a pas de gobelet", joueur
else :
if joueur == gobelet :
print "Bravo, vous avez trouvé l'emplacement de la balle."
else :
print "Désolé, elle était sous le gobelet", gobelet
Le programme serait encore mieux si l'on testait aussi que l'utilisateur n'entre pas du texte. Pour celà, il faudrait utiliser les exceptions (que vous n'avez pas encore vu) ou utiliser raw_input et tester l'entrée au clavier, mais ce n'est pas le but de l'exercice.
- Question 3 :
Faites un programme qui récupére une note (sur 20) et indique si l'utilisateur à la moyenne.
note = input("Entrez votre note sur 20 : ")
if note >=0 and note <=20:
if note >=10:
print "Vous avez la moyenne."
else :
print "Vous n'avez pas la moyenne"
else :
print "La note n'est pas correcte. Peut-être des points bonus ???"
- Question 3.1 :
Améliorer ce programme en indiquant si l'utilisateur a aussi obtenu une mention. (10-11 passable, 12-13 assez bien, 14-15 bien, 16à20 très bien).
note = input("Entrez votre note sur 20 : ")
if note >=0 and note <=20:
if note <10:
print "Vous n'avez pas la moyenne"
else :
print "Vous avez la moyenne avec la mention",
if note <12:
print "passable"
elif note >=12 and note <14:
print "assez bien"
elif note >=14 and note <16:
print "bien"
else :
print "très bien"
else :
print "La note n'est pas correcte. Peut-être des points bonus ???"
- Question 4 :
Vous faîtes un jeu où un personnage doit se déplacer mais certains passages sont bloqués par des murs. Dans la situation de cet exercice, le personnage peut faire trois déplacements sans revenir sur ses pas. Il avance 2 fois et se retrouve à un carrefour où il peut aller tout droit, à droite ou à gauche. Au moins une des trois directions n'est pas bloquée par un mur.
Exemple de personnage à l'intersection avec un mur en face et à gauche.
Vous disposez grâce au module "jeu" des fonctions/procédures suivantes:
- avance() : qui avance le personnage d'une case.
- tourne90() : qui tourne le personnage de 90° vers la droite.
- murDevant() : qui retourne True s'il y a un mur en face et False dans le cas contraire.
et du debut de programme suivant :
import jeu
jeu.avance()
jeu.avance()
...
Continuez le programme en testant s'il n'y a pas de mur dans une direction et dans ce cas avancez le personnage.
import jeu
jeu.avance()
jeu.avance()
if not jeu.murDevant():
jeu.avance()# S'il n'y a pas de mur, on avance
else :
jeu.tourne90()# Sinon on tourne le personnage et on teste de nouveau la présence d'un mur
if jeu.murDevant():
jeu.tourne90()
jeu.tourne90()# On tourne 2 fois car on ne peut pas revenir sur ses pas.
jeu.avance()
else :
jeu.avance()