Want to create interactive content? It’s easy in Genially!

Get started free

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.