Commit 45d94770 authored by Radia EL HAMDOUNI's avatar Radia EL HAMDOUNI

Update README.txt

parent 6cd5432c
...@@ -11,11 +11,11 @@ ...@@ -11,11 +11,11 @@
; +- description : ; ; +- description : ;
; - The user can play against the chess engine that will predict ; ; - The user can play against the chess engine that will predict ;
; the best moves to win the game. ; ; the best moves to win the game. ;
; - The chess engine can also play itself for debug and test purposes . ; ; ;
; ; ; ;
/*****************************************************************************************************/ /*****************************************************************************************************/
/******************************************************************************************************\ /*****************************************************************************************************\
; ; ; ;
; To compile and run the program : ; ; To compile and run the program : ;
; ; ; ;
...@@ -35,21 +35,32 @@ ...@@ -35,21 +35,32 @@
; ; ; ;
; +- Functionnlities : ; ; +- Functionnlities : ;
; + 0x88 board representation with unicode encoding of the chess pieces. ; ; + 0x88 board representation with unicode encoding of the chess pieces. ;
; + FEN inmplementation in the chess game. ; ; + Move generation . ;
; + Pawn promotion . ;
; + Search algorithm ;
; +- Alpha Beta Search . ;
; ; ; ;
; +- Evaluation function . ;
; ; ; ;
; ; ; ;
;-----------------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------------;
; +- Possible improvements : ; ; +- Possible improvements : ;
; - Let the user choose the color. ;
; - Implement Fen representation . ;
; - Implement castling . ;
; - Implement en pasant . ;
; - Change the board representation => Instead of using 0x88 and store the board in an ; ; - Change the board representation => Instead of using 0x88 and store the board in an ;
; array with the size 128 , we can implement the bitboard representation with a computer; ; array with the size 128 , we can implement the bitboard representation with a computer;
; with the architecture 64 bits and use 12 integers to store the ; ; with the architecture 64 bits and use 12 integers to store the ;
state of the chess board . ; ; state of the chess board . ;
; - Make the chess engine play itself for test purposes . ;
; - Add opening book . ;
; - Add a GUI for a better playing experience . ;
; - Implement a Neural Networks in the evaluation function . This will make our ; ; - Implement a Neural Networks in the evaluation function . This will make our ;
; ELO rating higher. ; ; ELO rating higher. ;
; We can integrte NNUE to the chess engine which is the stockfish's Neural Network ; ; - We can integrte NNUE to the chess engine which is the stockfish's Neural Network ;
; Or we can write our own Neural Network . ; ; Or we can write our own Neural Network . ;
; - ; ; ;
; ; ; ;
; ; ; ;
; ; ; ;
...@@ -58,7 +69,7 @@ ...@@ -58,7 +69,7 @@
/*****************************************************************************************************/ /****************************************************************************************************\
; ; ; ;
; +- Chess board representation : => 0X88 board representation . ; ; +- Chess board representation : => 0X88 board representation . ;
; ; ; ;
...@@ -71,13 +82,13 @@ ...@@ -71,13 +82,13 @@
; * https://decimal.info/hex-to-decimal/8/how-to-convert-0X88-to-decimal.html ; ; * https://decimal.info/hex-to-decimal/8/how-to-convert-0X88-to-decimal.html ;
; ; ; ;
; ; ; ;
; - Chess board in bash console : ; - Chess board in bash console : ;
; ; ;
; 8 ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜ ; 8 ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜ ;
; 7 ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ; 7 ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ;
; 6 . . . . . . . . ; 6 . . . . . . . . ;
; 5 . . . . . . . . ; 5 . . . . . . . . ;
; 4 . . . . . . . . ; 4 . . . . . . . . ;
; 3 . . . . . . . . ; ; 3 . . . . . . . . ;
; 2 ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ; ; 2 ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ;
; 1 ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖ ; ; 1 ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖ ;
...@@ -88,7 +99,7 @@ ...@@ -88,7 +99,7 @@
; ; ; ;
/*****************************************************************************************************/ /*****************************************************************************************************/
/*****************************************************************************************************\ /***************************************************************************************************\
; +- Vocabulary : ; ; +- Vocabulary : ;
; +- file is the column . ; ; +- file is the column . ;
; +- rank is the line . ; ; +- rank is the line . ;
...@@ -119,53 +130,22 @@ ...@@ -119,53 +130,22 @@
/*****************************************************************************************************/ /*****************************************************************************************************/
/*****************************************************************************************************/ /****************************************************************************************************\
;
; +- Chess board representation : => 0X88 board representation .
;
; --------------------------
; Ressources/documentation:
; -------------------------
;
; * https://web.archive.org/web/20130212063528/http://www.cis.uab.edu/hyatt/boardrep.html
; * https://en.wikipedia.org/wiki/0x88
; * https://decimal.info/hex-to-decimal/8/how-to-convert-0X88-to-decimal.html
;
;
; - Chess board in bash console :
;
; 8 ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜
; 7 ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎
; 6 . . . . . . . .
; 5 . . . . . . . .
; 4 . . . . . . . .
; 3 . . . . . . . .
; 2 ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙
; 1 ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖
;
; a b c d e f g h
;
;
;
/*****************************************************************************************************/
/*****************************************************************************************************\
; ; ; ;
; +- Moving a piece (how it works): ; ; +- Chess board representation : => 0X88 board representation . ;
; first empty the square. Example ==> board[e2]=e; ;
; ; ; ;
; -------------------------- ;
; Ressources/documentation: ;
; ------------------------- ;
; ; ; ;
; 8 ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜ ; ; * https://web.archive.org/web/20130212063528/http://www.cis.uab.edu/hyatt/boardrep.html;
; 7 ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ; ; * https://en.wikipedia.org/wiki/0x88 ;
; 6 . . . . . . . . ; ; * https://decimal.info/hex-to-decimal/8/how-to-convert-0X88-to-decimal.html ;
; 5 . . . . . . . . ; ; ;
; 4 . . . . ♟︎ . . . ; ; ;
; 3 . . . . . . . . ; ; - Chess board in bash console : ;
; 2 ♙ ♙ ♙ ♙ . ♙ ♙ ♙ ;
; 1 ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖ ;
; ; ; ;
; a b c d e f g h ;
; ; ; ;
; then move the pieces . Example ==> board[e4] = P; ;
; ; ; ;
; 8 ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜ ; ; 8 ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜ ;
; 7 ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ; ; 7 ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ;
...@@ -173,34 +153,73 @@ ...@@ -173,34 +153,73 @@
; 5 . . . . . . . . ; ; 5 . . . . . . . . ;
; 4 . . . . . . . . ; ; 4 . . . . . . . . ;
; 3 . . . . . . . . ; ; 3 . . . . . . . . ;
; 2 ♙ ♙ ♙ ♙ . ♙ ♙ ♙ ; ; 2 ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ;
; 1 ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖ ; ; 1 ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖ ;
; ; ; ;
; a b c d e f g h ; ; a b c d e f g h ;
; ; ; ;
; ; ; ;
; ;
; ;
/*****************************************************************************************************/ /*****************************************************************************************************/
/*****************************************************************************************************\ /*****************************************************************************************************\
; ;
; +- Moving a piece (how it works): ;
; first empty the square. Example ==> board[e2]=e; ;
; ;
; /****** Start ******/ ;
; ;
; ;
; 8 ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜
; 7 ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎
; 6 . . . . . . . .
; 5 . . . . . . . .
; 4 . . . . . . . .
; 3 . . . . . . . .
; 2 ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙
; 1 ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖
; ;
; a b c d e f g h
; ;
;--------------------// The user needs to enter a valid move a string of 4 characters // -------------;
;-----------// example e2e4
; ;
; Enter a valid move :
; e2e4
; 8 ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜
; 7 ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎
; 6 . . . . . . . .
; 5 . . . . . . . .
; 4 . . . . ♙ . . .
; 3 . . . . . . . .
; 2 ♙ ♙ ♙ ♙ . ♙ ♙ ♙
; 1 ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖
; ;
; a b c d e f g h
; ;
;-------------------// the chess engine will make the next move and it will be shown on the board
; ;
; Enter a valid move :
; 8 ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜
; 7 ♟︎ ♟︎ ♟︎ . ♟︎ ♟︎ ♟︎ ♟︎
; 6 . . . . . . . .
; 5 . . . ♟︎ . . . .
; 4 . . . . ♙ . . .
; 3 . . . . . . . .
; 2 ♙ ♙ ♙ ♙ . ♙ ♙ ♙
; 1 ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖
;
; a b c d e f g h
; ;
/*****************************************************************************************************/ /*****************************************************************************************************/
/****************************************************************************************************\
/*****************************************************************************************************/
; +-Ressources : ; ; +-Ressources : ;
; ; ; ;
; +- ASCII art : ; ; +- ASCII art for chess: ;
; * https://www.asciiart.eu/sports-and-outdoors/chess ; ; * https://www.asciiart.eu/sports-and-outdoors/chess ;
; ; ; ;
; +- ASCII Table : ;
* http://www.asciitable.com/ ;
; ;
; +- Inspiration : ; ; +- Inspiration : ;
; Micro-max minimalist chess ; ; Micro-max minimalist chess ;
; * https://home.hccnet.nl/h.g.muller/max-src2.html ; ; * https://home.hccnet.nl/h.g.muller/max-src2.html ;
...@@ -216,16 +235,27 @@ ...@@ -216,16 +235,27 @@
; Ressources/documentation: ; ; Ressources/documentation: ;
; ------------------------- ; ; ------------------------- ;
; * https://en.wikipedia.org/wiki/Algebraic_notation_(chess) ; ; * https://en.wikipedia.org/wiki/Algebraic_notation_(chess) ;
; ; ; +- ELO rating system : ;
; * https://en.wikipedia.org/wiki/Elo_rating_system ;
; +- FEN notation(Forsyth–Edwards Notation) : ; ; +- FEN notation(Forsyth–Edwards Notation) : ;
; * https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation ; ; * https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation ;
; +- Bitwise operations : ;
; * https://fr.wikipedia.org/wiki/Op%C3%A9ration_bit_%C3%A0_bit ;
; ; ; ;
; +- Alpha Beta Search : ;
;*http://web.archive.org/web/20070704121716/http://www.brucemo.com/compchess/programming/alphabeta.html;
; +- Special chess moves : ; ; +- Special chess moves : ;
; ;
; +-En passant : ; ; +-En passant : ;
; * https://www.youtube.com/watch?v=1q7lZilVy04 ; ; * https://www.youtube.com/watch?v=1q7lZilVy04 ;
; ; ; ; ;
; +- Castling : ; ; +- Bitwise with 0x88 : ;
; *https://stackoverflow.com/questions/16184092/if-index-0x88-0-how-this-works ;
; +- comparaison of chess engines : ;
; * https://www.youtube.com/watch?v=wljgxS7tZVE ;
; +- How do chess engines work BY Oliver Zeigermann : ;
; * https://www.youtube.com/watch?v=P0jd8AHwjXw ;
; +- Computer chess how it thinks : ;
; * https://www.youtube.com/watch?v=CFkhUajb8c8 ;
; ; ; ;
/*****************************************************************************************************/ /*****************************************************************************************************/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment