168 lines
6.1 KiB
TeX
168 lines
6.1 KiB
TeX
\documentclass[11pt,a4paper]{../../template/template_cours}
|
||
|
||
\usepackage{minted}
|
||
|
||
\title{Introduction à Python — Le jeu « Plus ou moins »}
|
||
\author{Adrian Amaglio}
|
||
\def\thesequence{Programmation}
|
||
|
||
\begin{document}
|
||
Durée : 1h\\
|
||
|
||
% ---
|
||
\section{Les règles du jeu}
|
||
Le jeu « Plus ou moins » a des règles assez simples.
|
||
Voici comment le jeu se joue sur ordinateur :
|
||
\begin{itemize}
|
||
\item Le programme choisit un nombre entier au hasard entre 0 et 100 (par exemple 42). Le joueur doit le deviner.
|
||
\item Le joueur propose un nombre (par exemple 55).
|
||
\item Le programme répond « plus grand, si la proposition est inférieure au nombre à deviner, « plus petit » si la proposition est supérieur et « Gagné » si la proposition est égale. (Dans notre exemple, l’ordinateur répondra « plus petit ».
|
||
\item Le joueur propose un nouveau nombre, jusqu’à ce qu’il ait le bon.
|
||
\end{itemize}
|
||
|
||
|
||
% ---
|
||
\section{Un nombre aléatoire}
|
||
En python, pour générer un nombre aléatoire entre 0 et 100 on a besoin des deux lignes suivantes.
|
||
\begin{minted}{python}
|
||
from random import randint
|
||
secret = randint(0,100)
|
||
\end{minted}
|
||
La variable $secret$ a maintenant pour valeur un nombre entier aléatoire !
|
||
|
||
\begin{exercice}
|
||
Pour vérifier l’effet de la fonction d’aléatoire, exécutez ce programme Python et vérifiez qu’il affiche bien un nombre différent à chaque exécution.
|
||
\begin{minted}{python}
|
||
from random import randint
|
||
secret = randint(0,100) # Python choisit un nombre aléatoire
|
||
print(secret) # Python va afficher le contenu de la variable "secret"
|
||
\end{minted}
|
||
\end{exercice}
|
||
|
||
|
||
% ---
|
||
\section{Les propositions du joueur}
|
||
Pour que le joueur propose un nombre, nous allons devoir dire à notre programme d’attendre une saisie de sa part.\\
|
||
On utilise pour cela la fonction $input$.
|
||
\begin{example}
|
||
\begin{minted}{python}
|
||
essai = int(input('Essai :'))
|
||
print(essai)
|
||
\end{minted}
|
||
\end{example}
|
||
|
||
\begin{exercice}
|
||
Exécutez un programme contenant les deux lignes de l’exemple précédent.\\
|
||
Lorsqu’il vous demandera d’entrer votre essai, entrez le chiffre 9, appuyez sur la touche « entrer » et vérifier que votre chiffre s’affiche bien une seconde fois à l’écran.
|
||
\end{exercice}
|
||
|
||
|
||
% ---
|
||
\section{Afficher des messages personnalisés}
|
||
Nous allons ajouter des \textbf{conditions}.
|
||
Une condition permet d’exécuter des instructions python uniquement dans certains cas.
|
||
\begin{example}
|
||
Par exemple, le programme suivant sert à tester si une personne est majeure :
|
||
\begin{minted}{python}
|
||
age = 17
|
||
if age < 18:
|
||
print('Vous êtes mineur')
|
||
elif age == 18:
|
||
print('Vous êtes tout juste majeur')
|
||
else:
|
||
print('Vous êtes majeur')
|
||
\end{minted}
|
||
\end{example}
|
||
\begin{exercice}
|
||
Exécutez le programme de l’exemple précédent. Et changez l’âge pour voir dans quels cas chaque message est affiché.
|
||
\end{exercice}
|
||
|
||
|
||
% ---
|
||
\section{Version à un essai}
|
||
\begin{exercice}
|
||
À partir des deux exemples précédents, écrivez un programme qui :
|
||
\begin{itemize}
|
||
\item Tire un nombre aléatoire et le stock dans la variable $secret$.
|
||
\item Demande à l’utilisateur d’entrer un essai.
|
||
\item Affiche le nombre secret, pour que le joueur puisse voir s’il correspond à son essai.
|
||
\end{itemize}
|
||
\textbf{Faites vérifier par le professeur}
|
||
\end{exercice}
|
||
|
||
|
||
% ---
|
||
\section{Version à un essai, avec un message personnalisé}
|
||
\begin{exercice}
|
||
Complétez votre programme pour qu’il affiche un message, comme définit dans les règles, en fonction de l’essai du joueur.
|
||
\end{exercice}
|
||
|
||
|
||
% ---
|
||
\section{Version avec trop d’essais !}
|
||
Pour que l’utilisateur puisse entrer plusieurs essais, il faudrait répéter certaines étapes du programme.\\
|
||
Pour répéter indéfiniment des instructions, on utilise une boucle infinie !
|
||
\begin{example}
|
||
\begin{minted}{python}
|
||
while True:
|
||
print('Bonjour')
|
||
\end{minted}
|
||
Le programme ci-dessus, affichera « bonjour » en continu, tant que l’on ne l’arrête pas.
|
||
\end{example}
|
||
\begin{exercice}
|
||
Modifiez votre programme python pour que l’utilisateur puisse faire plusieurs propositions.
|
||
\end{exercice}
|
||
|
||
|
||
% On espère que les élèves arriveront là au moins
|
||
% ---
|
||
\section{Version avec tout juste ce qu’il faut d’essais}
|
||
On a maintenant un problème, le programme précédent ne s’arrête pas, même lorsque le nombre a été deviné !
|
||
La boucle infinie, est réellement infinie…\\
|
||
Il existe cependant un moyen de la stopper. Il suffit d’ajouter l’instruction « break » dans le programme.
|
||
Lorsque python exécute l’instruction « break », il arrête immédiatement la boucle !
|
||
\begin{exercice}
|
||
Placez l’instruction « break » dans votre programme pour qu’il s’arrête en cas de victoire du joueur.\\
|
||
Testez plusieurs fois votre programme.
|
||
\end{exercice}
|
||
|
||
|
||
% ---
|
||
\section{Afficher le nombre d’essais}
|
||
\begin{example}
|
||
En python, on peut utiliser un compteur. C’est une variable qui contient un entier.\\
|
||
On l’initialise à 0, c’est à dire qu’on lui donne cette valeur au début du programme, puis on augmente sa valeur de 1 dès que l’on veut compter.
|
||
\begin{minted}{python}
|
||
compteur = 0
|
||
print(compteur) # <- affiche 0
|
||
compteur = compteur + 1
|
||
print(compteur) # <- affiche 1
|
||
\end{minted}
|
||
\end{example}
|
||
\begin{exercice}
|
||
Modifiez votre programme pour qu’il affiche le nombre de tentatives faites par le joueur pour deviner le nombre secret.
|
||
\end{exercice}
|
||
|
||
|
||
% ---
|
||
\section{Proposer de rejouer}
|
||
\begin{exercice}
|
||
Modifiez votre programme pour qu’il propose de rejouer à la fin de la partie.
|
||
\end{exercice}
|
||
|
||
|
||
% ---
|
||
\section{Nombre d’essai maximal}
|
||
\begin{exercice}
|
||
Modifiez votre programme pour qu’il fixe un nombre d’essai maximal au joueur et qu’il termine la partie lorsque celui-ci est atteint.\\
|
||
Il peut être agréable pour le joueur que le nombre d’essais restants soit affiché à chaque tour.
|
||
\end{exercice}
|
||
|
||
% ---
|
||
\section{Difficulté réglable}
|
||
\begin{exercice}
|
||
Modifiez votre programme pour qu’il permette au joueur de changer la valeur maximale du nombre secret et le nombre d’essais possibles.
|
||
\end{exercice}
|
||
|
||
\end{document}
|