Skip to content

A practice of implementing man-machine game with traditional seaching algorithms including Alpha-Beta and MTD(f) and knowledge-based evaluating algorithm.

Notifications You must be signed in to change notification settings

bipedalBit/BipedalBit-Chinese-Chess

Repository files navigation

BipedalBit-Chinese-Chess

    When coding a C++ GUI program I usually use Qt. It's a popular GUI C++ framework across platforms. And it's quite easy to use. The GUI part of my game is implemented with Qt5.
    For being new in man-machine game field, I chose widely used and traditional algorithms as the engine of my chinese chess game. For now there are only two searching algorithms used in my game which are classical Alpha-Beta algorithm and one little newer algorithm called MTD(f).
    As for the evaluating method of my game, I had to make a compromise. As I know, advanced evaluating methods such as nerual network optimized ones and genetic algorithm optimized ones, even simple board-statement database enhanced ones all need plenty gaming data. And I have not enough spare time to collect those data. So I just picked up an old, knowledge-based, non-adaptive evaluating algorithm.
    Of course I heard about the strong Monte Carlo method. And I do know how great success it made in computer Go field. But I'm not sure if it is enough to do a lot of concurrent compute with my personal laptop by hand only.
    I'm going to make my searching core history spired optimized in next version. And the parallel movement generator may also be implemented then.
    Have a try on MC-UCT? Maybe next year.

About

A practice of implementing man-machine game with traditional seaching algorithms including Alpha-Beta and MTD(f) and knowledge-based evaluating algorithm.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published