Vous êtes sur la page 1sur 9

Révisez la table de multiplication (X):

I)Jouez contre l’ordinateur :


L’ordinateur commence par tirer au hasard deux entiers
(entre 0 et 10) puis vous demande de donner leur
produit et affiche par la suite «Bravo!» en cas
de bonne réponse et «C’est faux» sinon.
II)
On interrogera 5 fois l’utilisateur ! Améliorer le
jeu en ajoutant un score (1 par bonne réponse
et -1 sinon)

Algorithme1 Programme python1 :


from random import*
Début calculatrice
score=0
[score=0] pour i de 0 à 4 faire
for i in range(5):
aAléa (0 ,10) a=randint(0,10)
bAléa (0 ,10) b=randint(0,10)
Afficher (a,’’*’’, b,’’= ’’) p=int(input(str(a)+"*"+str(b)+"="))

Lire(p) if (a*b==p):

Si (a*b=p) alors score=score+1


print("Bravo! score=", score)
Score=score+1
else:
Afficher (‘’Bravo ! score=’’, score)
score=score-1
Sinon
print("c'est faux! score=",
Score=score-1 score)

Afficher (‘’c’est faux ! score=’’,


score)

Fin si

Fin pour

Fin calculatrice

1
III)Améliorer l’affichage comme suit en ajoutant

à chaque interrogation le numéro d’essai ainsi

que le résultat final comportant le nombre

d’essais et le score final

Algorithme2 Programme python2 :


from random import*
Début calculatrice
score=0
1) [score0] pour i de 0 à 4 faire
for i in range(5):
aAléa (0 ,10)
a=randint(0,10)
bAléa (0 ,10)
b=randint(0,10)
Afficher (’’Essai’’, i+1, ’’ :’’, a,’’*’’,
p=int(input("Essai"+str(i+1)+":"+
b,’’= ’’)
str(a)+"*"+str(b)+"="))
Lire(p) if (a*b==p):
Si (a*b=p) alors score=score+1

Score=score+1 print("Bravo! score=", score)

Afficher (‘’Bravo ! score=’’, score) else:


score=score-1
Sinon
print("c'est faux! score=", score)
Score=score-1
print("*********************************")
Afficher (‘’c’est faux ! score=’’,
print(" Résultat finale : ")
score)
print(i+1," essais et votre score=",
Fin si score)
Fin pour

2) Afficher (‘’Résultat finale : ‘’,


i+1, ‘’essais et votre score=",
score)
Fin calculatrice

2
Exercice2

L'ordinateur tire un nombre au hasard entre 1 et 50 et vous avez cinq essais pour le trouver. Après
chaque tentative, l'ordinateur vous dira si le nombre que vous avez proposé est trop grand, trop petit,
ou si vous avez trouvé le bon nombre.
Exemple de partie
J'ai choisi un nombre entre 1 et 50
A vous de le deviner en 5 tentatives au maximum !
Essai no 1
Votre proposition : 15
Trop petit
Essai no 2
Votre proposition : 22
Trop grand
Essai no 3
Votre proposition : 17
Trop grand
Essai no 4
Votre proposition : 16
Bravo ! Vous avez trouvé 16 en 4 essais

Correction
from random import randint
nbr_essais_max = 5
nbr_essais = 0
mon_nombre = randint(1, 50) # nombre choisi par l'ordinateur
ton_nombre = 0 # nombre proposé par le joueur

print(" choisir un nombre entre 1 et 50")


print("A vous de le deviner en", nbr_essais_max, "tentatives au maximum !")

while ton_nombre != mon_nombre and nbr_essais < nbr_essais_max:


nbr_essais =nbr_essais+ 1
print("Essai no ", nbr_essais)
ton_nombre = int(input("Votre proposition : "))
if ton_nombre < mon_nombre:
print("Trop petit")
elif ton_nombre > mon_nombre:
print("Trop grand")
else:
print("Bravo ! ", mon_nombre, "en", nbr_essais, "essai(s)")

if ton_nombre != mon_nombre:
print("vous avez utilisé vos", nbr_essais_max)
print("J'avais choisi le nombre", mon_nombre, ".")

3
Exercice3
Jeu avec calcul de distance
L'ordinateur cache une bombe dont les coordonnées sont des entiers compris entre 0 et 100 inclus.
Le joueur propose un point. Si la distance entre la bombe et le point proposé est inférieure ou égale à
10, le programme affiche "Bravo", sinon le joueur doit proposer à nouveau un point.
Amélioration : limiter le nombre d'essais à 5.
Correction

Solution 1
from math import sqrt
from random import randint
nbr_essais_max = 5
nbr_essais = 0
# nombre choisi par l'ordinateur
a=randint(0,100)
b=randint(0,100)

distance=100
print(" choisir un nombre entre 1 et 50")
print("A vous de le deviner en", nbr_essais_max, "tentatives au maximum !")

while distance >10 and nbr_essais < nbr_essais_max:


nbr_essais =nbr_essais+ 1
print("Essai no ", nbr_essais)
x = int(input('donner x entre 0 et 100 '))
y = int(input('donner y entre 0 et 100'))
distance = sqrt((x - a) ** 2 + (y - b) ** 2)
print('Votre Coordonnes x=', x, ' y=', y)
print('distance=', distance)

if 10 > distance:
print("Bravo ! ", distance, "en", nbr_essais, "essai(s)")

if distance> 10:
print("vous avez utilisé vos", nbr_essais_max)
print('Coordonnes ordinateur a=', a, ' b=', b)

Solution 2
from math import sqrt
from random import randint
nbr_essais_max = 5
nbr_essais = 0
# nombre choisi par l'ordinateur

a=randint(1,100)
b=randint(1,100)

print(" choisir un nombre entre 1 et 50")


print("A vous de le deviner en", nbr_essais_max, "tentatives au maximum !")

4
gagner=False

while nbr_essais < nbr_essais_max and gagner==False:


nbr_essais =nbr_essais+ 1
print("Essai no ", nbr_essais)
x = int(input('donner x entre 0 et 100 '))
y = int(input('donner y entre 0 et 100'))
distance = sqrt((x - a) ** 2 + (y - b) ** 2)
print('Votre Coordonnes x=', x, ' y=', y)
print('distance=', distance)

if 10 > distance:
gagner=True
print("Bravo ! ", distance, "en", nbr_essais, "essai(s)")

if gagner==False:
print("vous avez utilisé vos", nbr_essais_max)
print('Coordonnes ordinateur a=', a, ' b=', b)

Exercice4

I/Soit la liste suivante(mot de 6 lettres)


list=['action','attend','chance','client','minute','normal','phrase','police','prince','r
egion']

a/Ecrire un script qui choisit aléatoirement un mot de la liste et l’affiche.


b/Afficher le premier lettre suivit de. ‘----‘ ,suivit du dernier caractère
exemple : si le mot est ‘phrase’ on affiche : p----e
A/Correction
from random import randint
nombre=randint(0,9)

list=['action','attend','chance','client','minute','normal','phrase','police','prince','r
egion']
print(list[nombre])

b/Correction
from random import randint
nombre=randint(0,9)
list=['action','attend','chance','client','minute','normal','phrase','police','prince','r
egion']
ch= list[nombre]
print(ch[0]+'----'+ch[5])
II)Règles du jeu du pendu
Un joueur doit deviner un mot choisi par l’ordinateur (l’ordinateur choisit le mot de la liste au-
dessous). En début de partie, le nombre de lettres est donné sous forme d'une suite de tirets on affiche
le premier caractère suivis de ‘----‘ , suivi du dernier caractère,. Ensuite à chaque tour de jeu, le joueur
5
propose une lettre. Si la lettre apparaît une ou plusieurs fois dans le mot, cette lettre sera affichée à la
place du tiret. On donne à l’utilisateur 5 essais pour trouver le mot :
Exemple :
il vous reste 5 essais :
le mot à deviner est p-----n
proposez une lettre : o
il vous reste 4 essais :
Le mot à deviner est p---on
proposez une lettre : v
il vous reste 3 essais :
Le mot à deviner est p---on
proposez une lettre : t
il vous reste 2 essais :
Le mot à deviner est p-t-on
proposez une lettre : y
il vous reste 1 essai :
Le mot à deviner est pyt-on
proposez une lettre : h
Le mot à deviner est python
Bravo!
Correction
from random import randint
nombre=randint(0,9)
list=['action','attend','chance','client','minute','normal','phrase','police','prince','r
egion']
print(list[nombre][0]+'----'+list[nombre][5])

essais=5
ch1=list[nombre]
ch2=list[nombre][0]+'----'+list[nombre][5]

while (ch1!=ch2) and (essais>0):


print('Il vous reste', essais, 'essais')
car=input('Proposez un caractère:')#caractere a saisir par l'utilisateur

for i in range(len(ch1)):
if car==ch1[i]:
ch2=ch2[:i]+car+ch2[i+1:]

print('Le mot a deviner est',ch2)


6
essais=essais-1

if ch1==ch2:
print('Bravo')
else:
print('Perdu')

Exercice 5
jeu du LUDO

Règles et déroulement

 Deux joueurs (bleu et vert) lancent aléatoirement et successivement (l’un après l’autre) un dé de six
faces.
 La valeur obtenu du lancé du dé est ajoutée à la somme de chaque joueur (score).
 Après le lancé du bleu si la somme du bleu (score du bleu) correspond (égale) à celle du vert alors le
bleu écrase le vert et le vert recommence à zéro.
 Après le lancé du vert si la somme du vert (score du vert) correspond (égale) à celle du bleu alors le
vert écrase le bleu et le bleu recommence à zéro.
 Le jeu prend fin si la somme (le score) de l’un des joueurs devient 50 ou plus.
 A la fin le programme affiche les scores et le gagnant et le perdant.

Correction
from random import randint

scorevert=0
scorebleu=0

while (scorevert<50) or (scorebleu<50):


c=input(print('lancement vert'))
vert = randint(1, 6)
scorevert=scorevert+vert
print('face:',vert)
print('score',scorevert)
if scorevert==scorebleu:
print('Ecraser bleu')
scorebleu=0
if scorevert>=50:
break
c=input(print('lancement bleu'))
bleu = randint(1, 6)
scorebleu=scorebleu+bleu
print('face:', bleu)
print('score', scorebleu)
if scorebleu >= 50:
break
if scorevert==scorebleu:
print('Ecraser vert')
scorevert=0

7
if scorevert>=50:
print('vert gagne')

if scorebleu >= 50:


print('bleu gagne')

Exercice 5
Le jeu de tir à l’arc consiste à tirer des flèches en utilisant un arc vers un endroit cible.
Un club de tir à l’arc organise une compétition entre ses joueurs. Cette compétition consiste à donner à chaque
joueur trois 3 essai de tir.
A chaque tir, le joueur gagne de 0 à 5 (un nombre aléatoire) points selon l’endroit touché par la flèche sur une cible
composée de 5 cercles concentriques comme l’illustre la figure ci-contre.

2 5
4
1
3
0

Après le 3ème essai, un score est calculé pour chaque joueur représentant la somme des résultats de ses trois essais, et
ce pour classer les joueurs.
On se propose d’écrire un programme Python permettant :
• de remplir un tableau A par N noms de joueurs participant à cette compétition (avec 2 ≤ N ≤ 20),
• de calculer le score de chaque joueur sachant que le résultat d’un essai est un entier positif inférieur ou égal à 5,
• d’afficher la liste des joueurs ayant le score maximal.

Exemple :
Pour N = 4 et le tableau A suivant :

Mohamed Abidi Fatma Ayadi Anis Omri Imen Loouiz

Joueur Essai 1 Essai 2 Essai 3


Mohamed Abidi 2 3 5
Fatma Ayadi 4 4 2
Anis Omri 5 2 2
Imen Loouiz 4 5 5

La liste des joueurs affichée sera la suivante :

Imen Louiz avec un score de

Correction
from random import randint

def saisir_n():
global n
while True:
8
n = int(input('Donner n : '))
if 2 <= n <= 20:
break

def saisir_tab():
global tnom
tnom = [''] * n
for i in range(n):
ch = input(' Donner nom: ')
tnom[i] = ch

def jouer():
global t
for j in range(n):
print('joueur :', tnom[j])
for i in range(3):
a = randint(0, 10)
t[j] = t[j] + a
print('Essai ', i + 1, ': ', a)

def afficher():
print('score finale: ')
for i in range(n):
print('score finale du joueur: ', tnom[i], ' Score: ', t[i])

def gagnant():
print('gagnant: ')
maximal = t[0]
for i in range(n):
if t[i] > maximal:
maximal = t[i]

for i in range(n):
if t[i] == maximal:
print(tnom[i], ' avec un score de ', t[i])

# programme principal
saisir_n()
t = [0] * n
tnom = [''] * n
saisir_tab()
jouer()
afficher()
gagnant()

Vous aimerez peut-être aussi