Pierre Feuille Ciseaux
Les Makers vont créer un jeu interactif de « Pierre-Feuille-Ciseaux » en utilisant Python, en mettant en pratique les concepts de variables, de conditions, de boucles et d’interaction avec l’utilisateur.

Objectifs pédagogiques
- Comprendre les principes de base de la programmation en Python, tels que l’utilisation de variables, de boucles et de conditions.
- Apprendre à générer des nombres aléatoires en utilisant le module random pour simuler le choix de l’ordinateur.
- Acquérir des compétences en résolution de problèmes en implémentant la logique du jeu « Pierre-Feuille-Ciseaux » à l’aide de conditions et de comparaisons.
- Pratiquer l’interaction avec l’utilisateur en utilisant des instructions d’entrée pour permettre au joueur de faire un choix.
- Explorer la création de boucles infinies et l’utilisation de l’instru
Compétences techniques
Compétences design
Compétences projet
La place dans le module
Cette activité vient après l’activité Défis Python et avant l’activité Défis Image
Jour 1
Jour 2
Jour 3
Jour 4
Jour 5
1h
🤩
30 min
🤩
30 min
🤩
1h
🤩
Ressources
Pages du site ressources utiles + ressources externes + suivi de projet/fiches de conception
Matériel
- Un ordinateur avec une connexion Internet
- Un compte Replit
Déroulé de l'activité
Segmentation de l’activité
- Segment 1 (1 heure) – Base du Jeu Pierre Feuille Ciseaux
- Segment 2 (30 min) – Rejouer + Score
- Segment 3 (30 min) – Amélioration du Jeu
- Segment 4 (1 heure) – Nouvelle fonctionnalité
Détail de l’activité
Segment 1 (1 heure) Base du jeu Pierre-Feuille-Ciseaux
1/ Inclusion (10 minutes)
Débute la session en prenant un moment pour renouer avec les Makers, revisiter les points que nous avons déjà abordés ensemble lors des précédentes sessions. Cela te permet de t’assurer que tous sont tous sur la même page et à les mêmes infos.
2/ Présentation du jeu Pierre-Feuille-Ciseaux (10 minutes)
Commence par présenter le jeu Pierre-Feuille-Ciseaux et explique son fonctionnement de base.
Ensuite, détaille les règles du jeu et introduis les concepts de choix du joueur et de l’ordinateur. Enfin, illustre le jeu avec des exemples concrets pour que les Makers puissent mieux le comprendre.
Voici les notions que tu devras présenter :
Variables : Explique ce qu’est une variable en programmation, à savoir un espace de stockage qui peut contenir différentes valeurs. Montre comment déclarer et utiliser des variables dans le contexte du jeu.
Entrée utilisateur : Présente comment obtenir des données de l’utilisateur en utilisant des fonctions d’entrée. Explique comment ces données peuvent être stockées dans des variables pour être utilisées dans le programme.
Instructions conditionnelles : Introduis les concepts d’instructions conditionnelles, qui permettent au programme de prendre des décisions en fonction de certaines conditions. Montre comment les structures if-else sont utilisées pour créer des branchements dans le jeu en fonction des choix de l’utilisateur.
3/ Obtenir le choix du joueur (10 minutes)
Pendant cette partie, tu vas aborder plusieurs notions essentielles. Tout d’abord, tu présenteras la fonction input()
, montrant comment elle est utilisée pour obtenir le choix du joueur.
Ensuite, tu expliqueras la conversion du choix en minuscules, soulignant l’importance de cette étape pour uniformiser les données et faciliter la comparaison.
Enfin, tu décriras comment tu vérifies la validité du choix du joueur, en t’assurant qu’il correspond à l’une des options du jeu, à savoir Pierre, Feuille ou Ciseaux. Ces étapes sont cruciales pour garantir le bon déroulement du jeu et la compréhension des concepts clés tels que les variables, l’entrée utilisateur et les instructions conditionnelles.
4/ Générer le choix de l’ordinateur (10 minutes)
Dans cette étape, tu vas introduire l’utilisation de la bibliothèque random
pour ajouter une dimension aléatoire au jeu. Tu expliqueras comment la fonction random.choice()
peut être employée pour sélectionner aléatoirement un élément dans une liste. Cela sera essentiel pour simuler le choix de l’ordinateur, rendant ainsi le jeu Pierre-Feuille-Ciseaux plus dynamique et imprévisible. Les Makers pourront ainsi voir comment les concepts de variables, d’entrée utilisateur, d’instructions conditionnelles, et désormais de génération aléatoire, sont interconnectés dans la création de ce jeu interactif.
5/ Comparer les choix du joueur et de l’ordinateur (10 minutes)
Maintenant, nous allons entrer dans la phase cruciale du jeu où nous utilisons des instructions conditionnelles. Tu expliqueras comment utiliser les instructions if
, elif
, et else
pour déterminer le résultat du jeu Pierre-Feuille-Ciseaux. Cette partie est essentielle pour déterminer si le joueur a gagné, perdu ou si c’est un match nul. Une fois les calculs effectués, tu montreras comment afficher le résultat à l’écran, ce qui permettra aux Makers de voir instantanément le dénouement de chaque manche.
Dans cette section, nous introduirons également des notions relatives aux fonctions, aux comparaisons, et à la sélection aléatoire. Ces concepts sont fondamentaux pour la mise en œuvre réussie du jeu, et tu montreras comment ils s’imbriquent harmonieusement pour créer une expérience de jeu fluide et amusante.
Notions à présenter :
- Fonctions
- Comparaisons
- Sélection aléatoire
6/ Aider les Makers égarés (10 minutes)
- Prend le temps de vérifier qu’aucun Maker n’est perdu.
Segment 2 (30 min) Ajout de la possibilité de Rejouer + le Score
1/ Ajout de la possibilité de rejouer (10 minutes)
Pour cette partie, tu expliqueras comment utiliser une boucle while
pour permettre au joueur de rejouer plusieurs fois. Cela crée une expérience de jeu interactive où le joueur peut décider s’il veut continuer à jouer après chaque manche.
Tu montreras comment demander au joueur s’il souhaite continuer et comment mettre en place une logique pour sortir de la boucle lorsque le joueur décide de ne plus jouer. Cela permet aux Makers de jouer autant de parties qu’ils le souhaitent et de s’amuser en découvrant les résultats à chaque tour.
2/ Défi pour les Makers : Créer un Scoring (15 minutes)
Tu pourras proposer aux Makers de relever un nouveau défi passionnant en leur demandant d’ajouter un système de scoring au jeu !
Explique-leur que cela ajoutera une dimension compétitive au jeu Pierre-Feuille-Ciseaux et les incitera à jouer encore plus pour atteindre des scores élevés. Encourage-les à utiliser les concepts de variables et de fonctions pour mettre en œuvre ce système de scoring de manière efficace. Cela permettra aux Makers de développer davantage leurs compétences en programmation tout en améliorant l’expérience globale du jeu.
3/ “Correction” Scoring (15 minutes) :
Fait une démo de comment créer un score.
Le score permettra de suivre combien de parties le joueur a gagnées et de rendre notre jeu encore plus intéressant. Voici comment faire :
- Créer une variable de score : Nous allons commencer par créer une variable appelée ‘score’ et l’initialiser à zéro. Cette variable va stocker le nombre de parties gagnées.
score = 0
- Incrémenter le score : Maintenant, chaque fois que le joueur gagne une partie, nous allons augmenter la valeur de cette variable. Par exemple, si le joueur gagne une partie, nous pouvons ajouter 1 au score.
score = score + 1
- Afficher le score : Enfin, nous allons afficher le score à l’écran pour que le joueur puisse le voir. Vous pouvez utiliser la fonction
print()
pour cela.
print("Votre score est de :", score)
- Réinitialiser le score : Si vous le souhaitez, vous pouvez également ajouter une option pour réinitialiser le score à zéro, par exemple, lorsque le joueur décide de quitter le jeu.
Et voilà ! C’est ainsi que vous pouvez créer un système de score simple pour notre jeu. N’hésitez pas à expérimenter avec cela et à le personnaliser selon vos préférences. Amusez-vous bien ! »
Cette démonstration devrait aider les Makers à comprendre comment mettre en place un système de scoring dans leur jeu.
Segment 3 (30 min) Amélioration du Jeu
1/ Listing des Améliorations (10 minutes) :
Liste avec les Makers des fonctionnalités qui peuvent être implémenter dans leur jeu, exemple :
- Ajouter une vérification de l’entrée du joueur : Vous pouvez ajouter une validation pour vous assurer que le joueur entre un choix valide (pierre, feuille ou ciseaux). Si le joueur entre une entrée incorrecte, demandez-lui de réessayer jusqu’à ce qu’une entrée valide soit donnée.
- Améliorer l’interface utilisateur : Ajoutez des messages plus explicites pour informer les joueurs de leur choix, du résultat de chaque partie et du score actuel. Vous pouvez également utiliser des symboles ou des emojis pour représenter les choix (pierre, feuille, ciseaux).
- Implémenter un mode de jeu contre l’ordinateur : Indiquez une option pour que le joueur puisse choisir de jouer contre l’ordinateur ou contre un autre joueur. Si le joueur choisit de jouer contre l’ordinateur, met en place une stratégie d’intelligence artificielle simple pour l’ordinateur, afin qu’il puisse prendre des décisions fondées sur le choix du joueur.
- Limiter le nombre de parties : Indiquez une option pour spécifier un nombre maximal de parties à jouer. Une fois ce nombre atteint, affichez le score final et le gagnant.
2/ Les Makers implémente une fonctionnalité (20 minutes) :
Les Makers vont tenter d’implémenter l’une des fonctionnalités annoncée plus tôt.
Donne des directions et des axes de réflexions pour les aider à y parvenir comme :
Mode Multijoueur Local :
- Pour permettre aux joueurs de s’affronter en local, les Makers doivent créer un système de gestion des joueurs. Ils peuvent demander aux joueurs de se connecter via Bluetooth ou Wi-Fi, puis les associer pour jouer les uns contre les autres.
- Ils devront créer une interface utilisateur conviviale pour que les joueurs puissent sélectionner leurs choix (pierre, feuille, ciseaux) de manière privée.
- Assurez-vous que le jeu est fluide et réactif, même lorsqu’il est utilisé par plusieurs joueurs.
Mode de Jeu Chronométré :
- Pour ajouter une limite de temps aux parties, les Makers doivent introduire un chronomètre qui se déclenche à chaque tour. Ils devront également inclure une fonction d’arrêt automatique lorsque le temps imparti est écoulé.
- Pensez à permettre aux joueurs de personnaliser la durée du chronomètre pour s’adapter à différents niveaux de compétence.
- Assurez-vous que le chronomètre est bien visible à l’écran pour que les joueurs puissent suivre le temps restant.
Niveaux de Difficulté :
- Les Makers peuvent créer différents niveaux de difficulté en ajustant le comportement de l’IA de l’ordinateur. Par exemple, un niveau facile pourrait signifier que l’ordinateur fait des choix aléatoires, tandis qu’un niveau difficile pourrait impliquer une analyse plus stratégique.
- Ils devront créer une option dans le menu principal qui permet aux joueurs de sélectionner leur niveau de difficulté avant de commencer une partie.
- Assurez-vous que les niveaux de difficulté sont équilibrés pour offrir une expérience de jeu amusante à chaque niveau.
Historique des Parties :
- Pour enregistrer les parties précédentes, les Makers devront créer une base de données ou un système de fichiers pour stocker les résultats, les choix des joueurs et les scores.
- Ils peuvent créer une section dans le menu principal où les joueurs peuvent accéder à leur historique et voir leurs statistiques de jeu.
- Veillez à ce que l’historique des parties soit organisé de manière claire et lisible.
Personnalisation des Choix :
- Pour permettre aux joueurs de personnaliser les choix (au-delà de pierre, feuille, ciseaux), les Makers doivent créer une interface permettant aux joueurs d’ajouter, de supprimer ou de modifier les éléments du jeu.
- Ils devront également mettre en place une fonction de sauvegarde pour que les choix personnalisés soient enregistrés pour les parties ultérieures.
- Assurez-vous que les choix personnalisés sont cohérents avec le thème du jeu et qu’ils ne créent pas de déséquilibre.
Ces directives devraient aider les Makers à commencer à implémenter la fonctionnalité de leur choix de manière structurée et créative. N’hésitez pas à les guider dans la planification, la conception et la mise en œuvre de ces fonctionnalités pour créer un jeu de Pierre-Feuille-Ciseaux encore plus divertissant et engageant. Bonne chance !
Segment 4 (1 h) Nouvelle fonctionnalité
1/ Aide les Makers (1 heure) :
En fonction des fonctionnalités souhaitées, aide les Makers à pousser leur projet plus loin, l’expérimentation est de rigueur mais si la fonctionnalité souhaitée n’est pas totalement implémenter à la fin.
Voici quelques conseils pour les aider à avancer, même si la fonctionnalité souhaitée n’est pas totalement implémentée à la fin :
Divisez le projet en étapes : Encouragez les Makers à diviser leur projet en étapes plus petites et gérables. Ils peuvent commencer par implémenter les fonctionnalités essentielles, puis ajouter des fonctionnalités plus avancées au fur et à mesure.
Documentation et tutoriels : Invitez-les à consulter des ressources en ligne telles que des tutoriels, des documentations et des forums de programmation. Souvent, d’autres programmeurs ont déjà résolu des problèmes similaires et peuvent fournir des conseils précieux.
Collaboration et partage : Encouragez les Makers à travailler ensemble et à partager leurs connaissances. Ils peuvent discuter de leurs défis, poser des questions les uns aux autres et même collaborer sur des parties spécifiques du projet.
Dépannage pas à pas : Si une fonctionnalité ne fonctionne pas comme prévu, encouragez-les à décomposer le problème en étapes plus petites. Cela les aidera à identifier où se situe le problème et à le résoudre progressivement.
Apprentissage itératif : Rappellez-leur que l’apprentissage de la programmation est itératif. Il est tout à fait normal de rencontrer des obstacles et de devoir les surmonter. Chaque erreur est une opportunité d’apprentissage.
S’inspirer des autres : Les Makers peuvent également s’inspirer d’autres projets similaires en ligne. Ils peuvent étudier comment d’autres programmeurs ont implémenté des fonctionnalités similaires et adapter ces idées à leur propre projet.
Rechercher des solutions alternatives : S’ils se retrouvent vraiment bloqués, ils peuvent rechercher des solutions alternatives à la fonctionnalité souhaitée. Parfois, il existe plusieurs façons d’atteindre un objectif.
Ne pas avoir peur de demander de l’aide : Enfin, encouragez-les à ne pas avoir peur de demander de l’aide. Que ce soit à leurs pairs, à l’enseignant ou en ligne, il existe de nombreuses sources d’assistance disponibles.
L’apprentissage de la programmation est un voyage continu, et il est important de rappeler aux Makers que chaque étape, qu’elle soit réussie ou non, contribue à développer leurs compétences. L’expérimentation, la persévérance et la curiosité sont les clés du succès dans ce domaine.