This repository contains a Chinese Chess agent based on MinMAX with Alpha-Beta Pruning, supporting Universal Chinese Chess Protocol (UCCI)[1].
The agent demonstrates a search capability reaching a depth of 11, coupled with a quiescent search that remains within a depth limit of 64, all accomplished within a 60-second time frame.
The agent's skill level is akin to that of a Chess Wizard grandmaster[2], securing the top rank in a CS department competition.
git clone git@github.com:Shaun1280/ChineseChess.git && cd ChineseChess
g++ -o main.exe main.cpp Agent/Position.cpp Agent/genMoves.cpp Agent/evaluate.cpp Agent/search.cpp Agent/Zobrist.cpp Agent/source.cpp -std=c++11 -DNDEBUG -O4 -static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lpthread -Wl,-Bdynamic
Then load main.exe into a Chinese Chess software like[2].
- MinMAX with Alpha-Beta Pruning.
- BitRanks and BitFiles[3].
- Quiescence Search[4].
- Zobrist.
- Transposition Table.
- Null Move Pruning.
- Iterative Deepening.
- Cyclic Position Check.
- Heuristics.
- History table heuristic
- Transposition table heuristic
- Killer heuristic
- Capture heuristic
- [1] Universal Chinese Chess Protocol
- [2] Chess Wizard.
- [3] BitRanks and Bit Files.
- [4] Quiescence search.