Skip to content

iciamyplant/Chess_engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Créer un tictactoc + minmax Règles des échecs

Algos

Algo Definition Commentaires
IA Minimax IA avec élagage alpha-bêta algorithme de base pour la recherche en arborescence dans les jeux à deux joueurs. Il explore de manière récursive les différentes lignes de jeu en maximisant le score pour le joueur actuel tout en minimisant le score pour l'adversaire. L'élagage alpha-bêta permet de réduire le nombre de nœuds explorés, ce qui améliore considérablement l'efficacité de la recherche ex: deepblue d'IBM qui bat Kasparov en 1997
IA NegaMax variante simplifiée du Minimax, utilisée spécifiquement pour les jeux à deux joueurs à somme nulle comme les échecs. Il simplifie l'implémentation et l'analyse en supposant que l'adversaire maximise également son score
Reinforcement Learning Cette approche consiste à entraîner l'IA à jouer aux échecs en lui permettant de jouer contre elle-même ou contre d'autres adversaires, en apprenant des récompenses et des sanctions en fonction des résultats des parties. Les méthodes populaires incluent le Q-learning, les réseaux de neurones profonds, et les méthodes basées sur les politiques
Méthodes Monte Carlo Les méthodes Monte Carlo, telles que MCTS (Monte Carlo Tree Search), sont des techniques de recherche stochastique qui utilisent des échantillons aléatoires pour évaluer les différents coups possibles. Elles sont souvent utilisées pour les jeux avec un grand facteur d'arborescence comme les échecs
  • comprendre minimax et megamax
  • étapes pour coder un tel algorithme
  1. Implémenter le plateau --> pygame pour l'interface graphique
  2. Implémenter le déplacement des pièces
  3. Création de l'IA --> algorithme min max, indique le meilleur coup à faire selon une fonction qui évolue le plateau
  4. Ajouter algorithme alpha beta pour aller plus vite qui consiste à ne pas explorer les branches inutiles
  5. Tester contre des joueurs

Reinforcement Learning Chess

https://www.kaggle.com/code/arjanso/reinforcement-learning-chess-1-policy-iteration

  • Notebook 1 : ==> Move Chess
  • Notebook 2 : ==> Move Chess
  • Notebook 3 : Q-networks ==> Capture chess
  • Notebook 4 : Policy-gradients ==> Capture chess
  • Notebook 5 : V-network et Monte Carlo Tree Search ==> Real Chess

https://www.youtube.com/watch?v=w4FFX_otR-4

  1. Board Representation --> trouver comment on va représenter la position des pions : on pourrait stocker dans une array, mais il y a mieux : bitboard method, 1 s'il y a un pion --> tout le plateau peut etre representé par 12 bitboards, pour chaque type de pion : pion blanc, pion noir, reine blanche, reine noire, roi blanc, roi noir, cavalier blanc, cavalier noir ... --> et enfin quelques bitboards pour les règles
  2. Fonction d'évaluation --> Avant de trouver le meilleur mouv, on doit trouver quel emplacement est mieux qu'un autre avec une fonction d'évaluation --> telle pièce a tel endroit vaut mieux que tel pièce a cet endroit == traduit par un chiffre
  3. Search with minimax algorithm --> on commence par extraire tous les mouvements qu'on a le droit de faire --> pour chaque mouvement on applique l'evaluation function pour avoir leur score --> on choisit le best mouv
  4. Algorithm Alpha Beta --> réduire le nombre de nœuds explorés, améliore l'efficacité de la recherche

I- implémenter la représentation du plateau

  • représenter la position des pions
  • les règles : genre comment les pions peuvent se déplacer etc. II - Coder l'IA

III - Tester notre IA contre des vrais joueurs

  • d'abord sur chess.com
  • ensuite avec des vrais joueurs en physique

References

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors