Skip to content

Borroot/katalon-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Katalon engine

A super efficient katalon engine which can solve any state within a minute, usually in a few hundred milliseconds. This is achieved by implementing an efficient search algorithm. The techniques implemented here include: negamax (better known as minmax), alpha-beta pruning, move ordering, transposition table, symmetry generation, the killer heuristic and MTD(f) a form of null window search.

This project also includes a benchmarker and an interactive terminal interface. In the future it might also implement an openingstable, for which the first steps are already done.

If the algorithms are all implemented correctly katalon is a win for the first player in at most 28 moves.

+-----------+---+-----------+
| .       . |   | .       . |
|           |   |           |
|     .     |   |     .     |
|       +---+---+---+       |
| .     | . |   | . |     . |
+-------+---+   +---+-------+
|       |     .     |       |
+-------+---+   +---+-------+
| .     | . |   | . |     . |
|       +---+---+---+       |
|     .     |   |     .     |
|           |   |           |
| .       . |   | .       . |
+-----------+---+-----------+
X > h
[0-4]<0-4>: make move
u undo: undo last move
e eval [timeout]: evaluate state
b best [timeout]: make best move
r random: make random move
n new: new game
l load: load game
c count: print movecount
t take: print takestreak
s square: print square
p print: print board
q quit: quit the maker
h help: show this help
X >

About

A super efficient katalon engine that strongly solves the game.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages