Want to create interactive content? It’s easy in Genially!
Présentation Projet Python
FIGUERES Théo
Created on November 15, 2023
Start designing with a free template
Discover more than 1500 professional designs like these:
Transcript
Coder un jeu d'échec en python
Présenté par : FIGUERES Théo SAGUER Quentin
Sommaire :
1. Introduction
2 · Présentation du jeu
3 · Explication générale
4· Le code en détails
5 · Petite démonstration
6 · Les problématiques du développement
7 · Conclusion
8 · Comment améliorer notre code
Introduction
Entièrement en pythonFonctionne 100% dans le terminal Jouable à 2 152 lignes au total 7 fonctions en tout Des tonnes de If et Elif
Présentation du jeu
Création en 600Pas de changement de règles depuis Actuel champion du monde : Ding LirenActuel n°1 mondial : Magnus Carlsen 16 contre 16 Pièces fortes et Pièces faibles
Notre code
Créé et affiche l'échiquier Demande quelle pièce bouger Vérifie si la pièce appartient à l'équipe qui joue ce tour Vérifie si la case contient une pièce Vérifie si le mouvement est possible pour la pièce Vérifie si la case de destination est vide ou déjà occupé Effectue le mouvement Met à jour l'échiquier Affiche l'échiquier
Le code en détail : __init__ :
- Créé l'échiquier- Définie le joueur actuel
Le code en détail : print_board
- Donne une lettre à chaque colonnes- Donne un chiffre à chaques lignes - Affiche les lettres et les chiffres
Le code en détail : transform_pawn
- Vérifie si le pion atteind le bout du plateau- Demande en quelle pièce transformer le pion - Met à jour le pion transformé - Si erreur de saisie, transforme automatiquement en Dame - Met à jour le plateau
Le code en détail : move_piece
- Définie les saisies et les traduit pour les prochaines étapes- Vérifie le type de pièce, et donc si le mouvement est valide dans les règles - Vérifie si la pièce est bien au joueur - Demande de resaisir le déplacement si celui-ci n'est pas validé -On peut voir sur l'image le cas de prise de pièce en diagonale par un pion : c'est un cas à part, car la pièce ne peut normalement pas se déplacer en avant
Le code en détail : move_piece
- Définie la prise en diagonale pour le pion blanc- Définie le mouvement classique en avant pour les pions - Définie les mouvements de la tour
10
Le code en détail : move_piece
- Définie les déplacements du cavalier- Définie les mouvements du fou - Définie les mouvements de la reine - Définie les mouvements du roi
11
Le code en détail : move_piece
- Vérifie si la destination, après avoir été validé, contient une pièce adverse- On rappelle à la fonction que le pion peut manger en diagonale - Effectue la prise si possible - Sinon, renvoie un message d'erreur et demande de réessayer
12
Le code en détail : switch_player
Gère le changement de joueur : à la fin du tour, changement de joueur Il ne faut pas oublier qu'on commence avec le joueur blanc
13
Le code en détail : play_game
- tant que le roi n'est pas mort, il y a toujours espoir !! - gère les inputs pour savoir quelle pièce déplacer - Appelle les fonctions move_piece et switch_player - appelle aussi la fonction is_game_over
14
Le code en détail : is_game_over
- Teste à chaque tour si le roi est toujours en vie sur le plateau - Si le roi est mort, la fonction play_game vue juste avant va arreter la partie et désigner le vainqueur - Note : il faut absolument manger le roi, et pas seulement le mettre en échec et mat
15
Une petite partie ?
16
Problématique du développement
Afficher l'échiquier dans le terminal
Coder les règles du jeu
Gérer les prises de pièce par un pion
Gérer les changements de tours
17
Conclusion
‘Pour le débutant, la partie comporte trois phases ; l'ouverture où il pense être bien, le milieu de jeu où il pense être mieux et la finale où il se sait perdu.’
Nous devions coder un jeu d'échec en python, et sans utiliser d'interface graphique comme Tkinter ou Pygame...
-Laverrière (Joueur Français)
Pour résumer :
- Nous avons un jeu d'échec 100% fonctionnel
- Jouable entièrement dans le terminal
- Le code rentre sur un total de 152 lignes
- On n'utilise aucune bibliothèque pour ce code
- Un total de 7 fonctions
18
Comment améliorer notre code :
Ajouter une interface graphique
Ajouter un système de points par pièces
Voici quelques idées pour améliorer notre code, allant d'idées simple à réaliser jusqu'à des idées demandant des années d'expériences :
Ajouter un timer réglable (10+0, 5+5,...)
Coder une IA pour pouvoir jouer seul contre l'ordinateur
19
Merci de votre attention
Avez-vous des questions ?
20
You can add interactivity to your timeline.
And animations to make it fun.
The important thing is for everything to besuitable for the topic.
And for you to wow your audience.
Did you know that Genially allows you to share your creation directly, with no need to download? All ready for your audience to view it from any device and share it anywhere.