123 lines
4.8 KiB
TeX
123 lines
4.8 KiB
TeX
\documentclass[11pt,a4paper]{../../template/template_cours}
|
||
|
||
\usepackage{minted}
|
||
|
||
\title{TP noté sur Python}
|
||
\author{Adrian Amaglio}
|
||
\def\thelevel{NSI}
|
||
\def\thesequence{Programmation}
|
||
|
||
\begin{document}
|
||
Durée : 1h
|
||
|
||
% ---
|
||
\section{Dessiner des pyramides}
|
||
L’objectif de cette partie est de concevoir un programme python capable d’afficher des pyramides de texte. Voici par exemple une pyramide d’étoiles de 4 étages :
|
||
\begin{verbatim}
|
||
*
|
||
* *
|
||
* * *
|
||
* * * *
|
||
\end{verbatim}
|
||
Nous allons pour cela créer une fonction affichant une ligne de longueur donnée et d’un symbole donné puis une fonction, utilisant la précédente, capable d’afficher une pyramide de hauteur donnée.
|
||
Cette partie sera à faire dans un fichier nommé \textit{pyramide.py}.
|
||
|
||
\begin{exercice}
|
||
Créer une fonction appelée \textit{ligne}, prenant en paramètre un symbole (type texte ou \textit{str} en python) et une taille de ligne.\\
|
||
Cette fonction affichera le symbole autant de fois que demandé dans le paramètre taille.\\
|
||
\textit{Aide :} Pour afficher du texte sans retour à la ligne on ajoute un paramètre \textit{end} à print :\\
|
||
\begin{minted}{python}
|
||
print('Bonsoir !', end='')
|
||
\end{minted}
|
||
Tester la fonction ligne avec plusieurs valeurs pour vérifier son bon fonctionnement. Voici des exemples de test :
|
||
\begin{minted}{python}
|
||
ligne('*', 10)
|
||
ligne('.', 1)
|
||
ligne('o', 5)
|
||
\end{minted}
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
Créer une fonction \textit{pyramide}, qui prend en paramètre une hauteur et un symbole et qui dessine la pyramide correspondante en utilisant la fonction \textit{ligne}.
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
Dessinez trois pyramides avec des symboles et des hauteurs différentes.
|
||
\end{exercice}
|
||
|
||
|
||
% ---
|
||
\section{Jeu de morpion}
|
||
L’objectif de cette partie est de concevoir un jeu de morpion (ou tic-tac-toe).
|
||
Cette partie sera à faire dans un fichier nommé \textit{morpion.py}.\\
|
||
Le plateau de jeu sera représenté par une liste contenant trois liste (une pour chaque ligne du plateau).
|
||
Chaque ligne sera représentée par une liste de trois textes (str) qui peuvent avoir trois valeurs distinctes :
|
||
\begin{description}
|
||
\item[' '] Si la case est vide
|
||
\item['x'] Si la case contient une croix
|
||
\item['o'] Si la case contient un rond
|
||
\end{description}
|
||
|
||
|
||
\begin{exercice}
|
||
En haut de votre fichier \textit{morpion.py}, collez la ligne de python suivante :
|
||
\begin{minted}{python}
|
||
plateau = [ [' ', ' ', ' '], [' ', ' ', ' '], [' ', ' ', ' '] ]
|
||
\end{minted}
|
||
Vérifiez que votre fichier s’exécute bien et n’affiche rien.
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
Créer une fonction nommée \textit{afficher} qui affiche en texte le plateau de jeu. Elle prendra le plateau de jeu en paramètre.\\
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
Créer une fonction nommée \textit{jouer} qui prend quatre paramètres :
|
||
\begin{itemize}
|
||
\item Le plateau de jeu
|
||
\item Le symbole à jouer (x ou o)
|
||
\item La ligne où on souhaite jouer
|
||
\item La colonne où on souhaite jouer
|
||
\end{itemize}
|
||
Cette fonction modifiera le plateau pour mettre le symbole à l’emplacement voulu.
|
||
Aucune vérification n’est faite à cette étape du programme, les coups de triche sont possibles.
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
Testez vos deux fonctions précédentes en les appelant avec des valeurs choisies.
|
||
Voici un exemple de test à modifier et enrichir :
|
||
\begin{minted}{python}
|
||
afficher(plateau)
|
||
jouer(plateau, 'x', 0, 0)
|
||
afficher(plateau)
|
||
\end{minted}
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
Modifier la fonction \textit{jouer} pour qu’elle vérifie de le coup demandé est valide.
|
||
La fonction doit maintenant retourner True si le coup a été joué et False si il est invalide.\\
|
||
Tester à nouveau la fonction.
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
Créer une fonction \textit{partie} qui prend le plateau en paramètre et qui déroule une partie. Voici le principe de base.
|
||
\begin{itemize}
|
||
\item Demander au premier joueur où il souhaite jouer
|
||
\item Appeler la fonction jouer avec les paramètres correspondants
|
||
\item Demander au second joueur où il souhaite jouer
|
||
\item Appeler la fonction jouer avec les paramètres correspondants
|
||
\end{itemize}
|
||
Vérifiez que votre fonction :
|
||
\begin{itemize}
|
||
\item Gère correctement les cas où le coup est invalide
|
||
\item Utilise bien le symbole 'x' pour un joueur et 'o' pour l’autre
|
||
\end{itemize}
|
||
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
Créer une fonction \textit{victoire} qui prend le plateau en paramètre et retourne le symbole 'x' si trois x sont alignés, 'o' si trois o sont alignés ou ' ' si aucun joueur n’a gagné.
|
||
Utilisez cette fonction dans votre fonction \textit{partie}
|
||
\end{exercice}
|
||
\end{document}
|