Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/quimpm/chess_ia

Chess Software with a basic AI to play against. This project can be used as a Playground for developing AI's to play against.
https://github.com/quimpm/chess_ia

Last synced: about 1 month ago
JSON representation

Chess Software with a basic AI to play against. This project can be used as a Playground for developing AI's to play against.

Awesome Lists containing this project

README

        

# Chess_IA

Chess Software with a basic AI to play against. This project can be used as a Playground for developing AI's to play against.

## Usage

$ python Chess.py
* game_mode = 1: 2 Player
* game_mode = 2: Player vs AI

## Technics

The following algorithms have been used to perform this Artificial Intelligence:

* Minimax
* Alpha-Beta Pruning
* Neightboor Search

## Explanation

In this project I tried to make an AI capable of running on my computer. The typical practice when doing this type of chess AI is to use the minimax algorithm together with alpha-beta pruning. Even so, if you want the AI ​​to make a prediction of a possible movement that you can make, the computational cost is still very large due to the number of different situations that exist in each state of the game.

For this reason, I have combined these two algorithms with a neightboor search algorith with which we make N random evaluations for each state of the game. This N is equivalent to the ramification factor, so I can control how much the tree expands at each prediction level.

In order to do it as quickly as possible, in the search for neighbors, evaluations can be repeated, since in the end the objective is to make the maximum number of evaluations possible in a reasonable time.