Comment coder un jeu de morpion (tic-tac-toe) fonctionnel en Python...
Morpion en Python — code simple pour NSI





Grille et conditions de victoire
Modélisation du plateau
Le morpion utilise une matrice de nombres entiers.
- Ronds (Joueur) : représentés par la valeur .
- Croix (Ordi) : représentées par la valeur .
- Cases vides : représentées par la valeur .
Détecter la fin de partie
La fonction fin(mat) vérifie l'état de la grille.
- Somme de 3 : un joueur aligne trois ronds (), victoire du joueur.
- Somme de 12 : l'ordinateur aligne trois croix (), victoire de l'ordinateur.
💡 Astuce : Utiliser des valeurs numériques différentes de évite toute confusion lors du calcul de la somme des lignes ou colonnes.

Entrées joueur et logique de l'IA
Tour du joueur
Le joueur saisit les coordonnées de la case ciblée.
- Coordonnées : conversion des indices utilisateurs vers les indices Python .
- Validation : vérification que la case
mat[a-1][b-1]est bien égale à (libre).
Stratégie de l'ordinateur
L'ordinateur joue de manière semi-intelligente ou aléatoire.
- Recherche de proximité : l'ordinateur tente de poser son pion adjacent à l'un de ses pions existants.
- Aléatoire : si aucune case adjacente n'est libre, il choisit une case au hasard via
random.randint.
💡 Attention : Pense à soustraire aux saisies de l'utilisateur pour ne pas dépasser la taille de la liste et lever une erreur
IndexError.

Boucle de jeu principale
Initialisation
La partie commence par la création d'une grille vide.
- Matrice vide : déclarée sous la forme
[[0,0,0], [0,0,0], [0,0,0]]. - Premiers tours : le joueur commence la partie pour installer le jeu.
Boucle de jeu
Le jeu alterne les tours jusqu'à la fin de la partie.
- Alternance : boucle
whilequi tourne tant quefin(mat)renvoieFalse. - Verdict : affichage final du vainqueur une fois la boucle interrompue.
💡 Attention : Veille à tester la fin de partie immédiatement après le coup du joueur pour éviter que l'ordinateur ne joue sur une grille déjà pleine.

Lancement du programme
L'interface utilisateur
Le programme propose un menu simple pour démarrer ou quitter.
- Choix initial : saisie de pour lancer
organiser_partie()ou pour quitter. - Fermeture : message d'au revoir amical si l'utilisateur décide de ne pas jouer.
Exemple :
- Entrée :
1-> Déclenche le jeu. - Entrée :
0-> Affiche "Au revoir".
💡 Astuce : Convertis toujours l'entrée utilisateur avec
int()pour pouvoir la comparer directement à des nombres entiers.
Si on te demande...
Contenus similaires
Contenus les plus populaires en NSI
9Arbres Binaires Essentiels
Découvrez les concepts clés des arbres binaires, y compris la taille, la profondeur, et les parcours (préfixe, infixe, suffixe). Ce résumé est idéal pour préparer le bac de NSI et comprend des définitions et des exemples pratiques.
Commandes SQL Essentielles
Explorez les commandes fondamentales du langage SQL, y compris INSERT, DELETE, UPDATE, et SELECT. Ce résumé couvre également les contraintes de domaine, de relation et de référence, ainsi que les opérations de tri et de jointure. Idéal pour les étudiants préparant le bac en NSI.
Graphes et Arbres Binaires
Explorez les concepts fondamentaux des graphes et des arbres binaires, y compris les types de graphes, les matrices et listes d'adjacences, ainsi que les différentes méthodes de parcours d'arbres. Ce document est essentiel pour comprendre les structures de données en NSI.
Structures de Données: Liste, Pile, File
Explorez les concepts fondamentaux des structures de données en NSI, y compris les listes, les piles et les files. Apprenez les principes FIFO et LIFO, ainsi que leur implémentation en Python. Ce document présente des schémas explicatifs et des exemples pratiques pour une meilleure compréhension.
Introduction à la POO
Explorez les concepts fondamentaux de la programmation orientée objet (POO), y compris son histoire, la représentation des classes, la conception d'objets, et l'instanciation. Ce résumé est essentiel pour les étudiants en NSI préparant le bac, avec des exemples pratiques de code Python.
Équations RC et Condensateurs
Explorez les concepts clés des dipôles RC, y compris les formules essentielles, le chargement et le déchargement des condensateurs dans une résistance, ainsi que les équations différentielles associées. Ce résumé est idéal pour les étudiants en physique cherchant à maîtriser ces notions fondamentales.
Structures Linéaires: Piles et Files
Explorez les concepts fondamentaux des structures linéaires, y compris les listes, les piles et les files. Ce résumé couvre les constructeurs, accesseurs et opérations essentielles pour manipuler ces structures de données. Idéal pour les étudiants en programmation et en informatique.
Listes, Tuples et Dictionnaires
Découvrez les fondamentaux des listes, tuples et dictionnaires en Python. Ce document couvre les bases, les méthodes et les fonctions essentielles pour manipuler ces structures de données. Idéal pour les étudiants en NSI souhaitant maîtriser la programmation Python.
Dictionnaires en Python
Explorez les concepts fondamentaux des dictionnaires en Python, y compris la création, la modification, et l'accès aux éléments. Ce document présente des exemples pratiques et des méthodes clés comme 'items()', 'keys()', et 'values()'. Type de contenu : fiche de révisions.
Contenus les plus populaires
9Conscience en Philosophie
Explorez la notion de conscience en philosophie à travers ses implications sur la justice, la liberté, et la connaissance. Cette fiche de révision aborde les débats philosophiques sur la conscience, le cogito, et les valeurs morales, tout en intégrant des perspectives contemporaines. Idéale pour les étudiants en philosophie cherchant à approfondir leur compréhension des enjeux éthiques et existentiels.
Conflits de la Guerre Froide
Explorez les principaux événements et tensions de la Guerre froide (1947-1991), y compris la division de l'Allemagne, la crise de Cuba, la guerre du Vietnam, et la course à l'espace. Cette fiche de révision couvre les idéologies opposées des blocs Est et Ouest, les crises majeures, et l'impact mondial de cette période historique.
Guerre Totale : 1939-1945
Explorez les événements marquants de la Seconde Guerre mondiale, de l'invasion de la Pologne à la capitulation du Japon. Ce résumé aborde les concepts clés tels que la guerre totale, le génocide des Juifs, la bataille de Stalingrad, et l'impact de la propagande. Idéal pour les étudiants en histoire cherchant à comprendre les enjeux et les conséquences de ce conflit majeur.
Révisions Bac SVT 2023
Fiches de révisions complètes pour le bac de spécialité SVT 2023, couvrant tous les chapitres essentiels tels que la génétique évolutive, la photosynthèse, la communication nerveuse, et les réflexes myotatiques. Cette version inclut toutes les informations nécessaires pour réussir l'examen, y compris les réponses au stress et les mécanismes de reproduction.
Mouvements Littéraires du XIXe Siècle
Explorez les principaux mouvements littéraires du XIXe siècle, incluant le Romantisme, le Réalisme, le Naturalisme, le Symbolisme et le Surréalisme. Cette ressource présente les thèmes, esthétiques, procédés et auteurs clés de chaque mouvement, offrant une compréhension approfondie de l'évolution littéraire de cette période. Type: résumé.
Citations par thème, le discours de la servitude volontaire
Citations, Œuvres reliées, par idées sur le Discours de la Servitude Volontaire de Étienne de La Boetie
Fiches récapitulatives spé maths - TOUT le programme de terminale
Ces fiches vont vous sauver pour le bac de spé maths! :)
Guide Complet Brevet Français
Préparez-vous efficacement pour le brevet de Français avec ce guide détaillé. Explorez les épreuves, les figures de style, les points de vue narratifs, les fonctions grammaticales, et bien plus encore. Idéal pour les révisions et la compréhension des concepts clés en grammaire et littérature française.
Figures de Style Essentielles
Explorez les figures de style clés en français, incluant la comparaison, la métaphore, la personnification, et plus. Ce document comprend des exemples pratiques et un exercice avec corrigé pour renforcer votre compréhension. Idéal pour les révisions du brevet.
Les étudiants nous adorent — il ne manque plus que toi.
L'application est très facile d'utilisation et bien conçue. Jusqu'à présent, j'ai trouvé tout ce que je cherchais et j'ai pu apprendre beaucoup de choses grâce aux présentations ! Je vais certainement utiliser l'application pour un travail en classe ! Et comme source d'inspiration personnelle, elle est bien sûr aussi très utile.
Cette application est vraiment super. Il y a tellement de fiches de révision et d'aide, [...]. Par exemple, la matière qui me pose problème est le français et l'appli a un choix d'aide très large. Grâce à cette application, je me suis améliorée en français. Je la recommanderais à tout le monde.
Waouh, je suis vraiment abasourdi. J'ai essayé l'application parce que je l'avais déjà vue plusieurs fois dans la publicité et j'ai été absolument choquée. Cette appli est L'AIDE dont on rêve pour l'école et surtout, elle propose tellement de choses, comme des rédactions et des fiches qui m'ont personnellement TRÈS bien aidé.
Morpion en Python — code simple pour NSI
Comment coder un jeu de morpion (tic-tac-toe) fonctionnel en Python ? Ce projet classique de programmation illustre parfaitement la manipulation des listes bidimensionnelles, la gestion des structures de contrôle et la création d'algorithmes de décision. Les notes de cours présentées...

Grille et conditions de victoire
Modélisation du plateau
Le morpion utilise une matrice de nombres entiers.
- Ronds (Joueur) : représentés par la valeur .
- Croix (Ordi) : représentées par la valeur .
- Cases vides : représentées par la valeur .
Détecter la fin de partie
La fonction fin(mat) vérifie l'état de la grille.
- Somme de 3 : un joueur aligne trois ronds (), victoire du joueur.
- Somme de 12 : l'ordinateur aligne trois croix (), victoire de l'ordinateur.
💡 Astuce : Utiliser des valeurs numériques différentes de évite toute confusion lors du calcul de la somme des lignes ou colonnes.

Entrées joueur et logique de l'IA
Tour du joueur
Le joueur saisit les coordonnées de la case ciblée.
- Coordonnées : conversion des indices utilisateurs vers les indices Python .
- Validation : vérification que la case
mat[a-1][b-1]est bien égale à (libre).
Stratégie de l'ordinateur
L'ordinateur joue de manière semi-intelligente ou aléatoire.
- Recherche de proximité : l'ordinateur tente de poser son pion adjacent à l'un de ses pions existants.
- Aléatoire : si aucune case adjacente n'est libre, il choisit une case au hasard via
random.randint.
💡 Attention : Pense à soustraire aux saisies de l'utilisateur pour ne pas dépasser la taille de la liste et lever une erreur
IndexError.

Boucle de jeu principale
Initialisation
La partie commence par la création d'une grille vide.
- Matrice vide : déclarée sous la forme
[[0,0,0], [0,0,0], [0,0,0]]. - Premiers tours : le joueur commence la partie pour installer le jeu.
Boucle de jeu
Le jeu alterne les tours jusqu'à la fin de la partie.
- Alternance : boucle
whilequi tourne tant quefin(mat)renvoieFalse. - Verdict : affichage final du vainqueur une fois la boucle interrompue.
💡 Attention : Veille à tester la fin de partie immédiatement après le coup du joueur pour éviter que l'ordinateur ne joue sur une grille déjà pleine.

Lancement du programme
L'interface utilisateur
Le programme propose un menu simple pour démarrer ou quitter.
- Choix initial : saisie de pour lancer
organiser_partie()ou pour quitter. - Fermeture : message d'au revoir amical si l'utilisateur décide de ne pas jouer.
Exemple :
- Entrée :
1-> Déclenche le jeu. - Entrée :
0-> Affiche "Au revoir".
💡 Astuce : Convertis toujours l'entrée utilisateur avec
int()pour pouvoir la comparer directement à des nombres entiers.
Si on te demande...
Contenus similaires
Contenus les plus populaires en NSI
9Arbres Binaires Essentiels
Découvrez les concepts clés des arbres binaires, y compris la taille, la profondeur, et les parcours (préfixe, infixe, suffixe). Ce résumé est idéal pour préparer le bac de NSI et comprend des définitions et des exemples pratiques.
Commandes SQL Essentielles
Explorez les commandes fondamentales du langage SQL, y compris INSERT, DELETE, UPDATE, et SELECT. Ce résumé couvre également les contraintes de domaine, de relation et de référence, ainsi que les opérations de tri et de jointure. Idéal pour les étudiants préparant le bac en NSI.
Graphes et Arbres Binaires
Explorez les concepts fondamentaux des graphes et des arbres binaires, y compris les types de graphes, les matrices et listes d'adjacences, ainsi que les différentes méthodes de parcours d'arbres. Ce document est essentiel pour comprendre les structures de données en NSI.
Structures de Données: Liste, Pile, File
Explorez les concepts fondamentaux des structures de données en NSI, y compris les listes, les piles et les files. Apprenez les principes FIFO et LIFO, ainsi que leur implémentation en Python. Ce document présente des schémas explicatifs et des exemples pratiques pour une meilleure compréhension.
Introduction à la POO
Explorez les concepts fondamentaux de la programmation orientée objet (POO), y compris son histoire, la représentation des classes, la conception d'objets, et l'instanciation. Ce résumé est essentiel pour les étudiants en NSI préparant le bac, avec des exemples pratiques de code Python.
Équations RC et Condensateurs
Explorez les concepts clés des dipôles RC, y compris les formules essentielles, le chargement et le déchargement des condensateurs dans une résistance, ainsi que les équations différentielles associées. Ce résumé est idéal pour les étudiants en physique cherchant à maîtriser ces notions fondamentales.
Structures Linéaires: Piles et Files
Explorez les concepts fondamentaux des structures linéaires, y compris les listes, les piles et les files. Ce résumé couvre les constructeurs, accesseurs et opérations essentielles pour manipuler ces structures de données. Idéal pour les étudiants en programmation et en informatique.
Listes, Tuples et Dictionnaires
Découvrez les fondamentaux des listes, tuples et dictionnaires en Python. Ce document couvre les bases, les méthodes et les fonctions essentielles pour manipuler ces structures de données. Idéal pour les étudiants en NSI souhaitant maîtriser la programmation Python.
Dictionnaires en Python
Explorez les concepts fondamentaux des dictionnaires en Python, y compris la création, la modification, et l'accès aux éléments. Ce document présente des exemples pratiques et des méthodes clés comme 'items()', 'keys()', et 'values()'. Type de contenu : fiche de révisions.
Contenus les plus populaires
9Conscience en Philosophie
Explorez la notion de conscience en philosophie à travers ses implications sur la justice, la liberté, et la connaissance. Cette fiche de révision aborde les débats philosophiques sur la conscience, le cogito, et les valeurs morales, tout en intégrant des perspectives contemporaines. Idéale pour les étudiants en philosophie cherchant à approfondir leur compréhension des enjeux éthiques et existentiels.
Conflits de la Guerre Froide
Explorez les principaux événements et tensions de la Guerre froide (1947-1991), y compris la division de l'Allemagne, la crise de Cuba, la guerre du Vietnam, et la course à l'espace. Cette fiche de révision couvre les idéologies opposées des blocs Est et Ouest, les crises majeures, et l'impact mondial de cette période historique.
Guerre Totale : 1939-1945
Explorez les événements marquants de la Seconde Guerre mondiale, de l'invasion de la Pologne à la capitulation du Japon. Ce résumé aborde les concepts clés tels que la guerre totale, le génocide des Juifs, la bataille de Stalingrad, et l'impact de la propagande. Idéal pour les étudiants en histoire cherchant à comprendre les enjeux et les conséquences de ce conflit majeur.
Révisions Bac SVT 2023
Fiches de révisions complètes pour le bac de spécialité SVT 2023, couvrant tous les chapitres essentiels tels que la génétique évolutive, la photosynthèse, la communication nerveuse, et les réflexes myotatiques. Cette version inclut toutes les informations nécessaires pour réussir l'examen, y compris les réponses au stress et les mécanismes de reproduction.
Mouvements Littéraires du XIXe Siècle
Explorez les principaux mouvements littéraires du XIXe siècle, incluant le Romantisme, le Réalisme, le Naturalisme, le Symbolisme et le Surréalisme. Cette ressource présente les thèmes, esthétiques, procédés et auteurs clés de chaque mouvement, offrant une compréhension approfondie de l'évolution littéraire de cette période. Type: résumé.
Citations par thème, le discours de la servitude volontaire
Citations, Œuvres reliées, par idées sur le Discours de la Servitude Volontaire de Étienne de La Boetie
Fiches récapitulatives spé maths - TOUT le programme de terminale
Ces fiches vont vous sauver pour le bac de spé maths! :)
Guide Complet Brevet Français
Préparez-vous efficacement pour le brevet de Français avec ce guide détaillé. Explorez les épreuves, les figures de style, les points de vue narratifs, les fonctions grammaticales, et bien plus encore. Idéal pour les révisions et la compréhension des concepts clés en grammaire et littérature française.
Figures de Style Essentielles
Explorez les figures de style clés en français, incluant la comparaison, la métaphore, la personnification, et plus. Ce document comprend des exemples pratiques et un exercice avec corrigé pour renforcer votre compréhension. Idéal pour les révisions du brevet.
Les étudiants nous adorent — il ne manque plus que toi.
L'application est très facile d'utilisation et bien conçue. Jusqu'à présent, j'ai trouvé tout ce que je cherchais et j'ai pu apprendre beaucoup de choses grâce aux présentations ! Je vais certainement utiliser l'application pour un travail en classe ! Et comme source d'inspiration personnelle, elle est bien sûr aussi très utile.
Cette application est vraiment super. Il y a tellement de fiches de révision et d'aide, [...]. Par exemple, la matière qui me pose problème est le français et l'appli a un choix d'aide très large. Grâce à cette application, je me suis améliorée en français. Je la recommanderais à tout le monde.
Waouh, je suis vraiment abasourdi. J'ai essayé l'application parce que je l'avais déjà vue plusieurs fois dans la publicité et j'ai été absolument choquée. Cette appli est L'AIDE dont on rêve pour l'école et surtout, elle propose tellement de choses, comme des rédactions et des fiches qui m'ont personnellement TRÈS bien aidé.