https://github.com/broderick-westrope/dsa-hex-game
A fast-paced turn-based game with several advanced algorithms to verse.
https://github.com/broderick-westrope/dsa-hex-game
a-star-algorithm algorithms astar-algorithm cpp data-structures-and-algorithms hex hex-game mcts-algorithm minimax-algorithm
Last synced: over 1 year ago
JSON representation
A fast-paced turn-based game with several advanced algorithms to verse.
- Host: GitHub
- URL: https://github.com/broderick-westrope/dsa-hex-game
- Owner: Broderick-Westrope
- Created: 2021-03-18T05:52:44.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2022-04-07T21:57:11.000Z (over 4 years ago)
- Last Synced: 2025-03-15T07:27:31.569Z (over 1 year ago)
- Topics: a-star-algorithm, algorithms, astar-algorithm, cpp, data-structures-and-algorithms, hex, hex-game, mcts-algorithm, minimax-algorithm
- Language: C++
- Homepage:
- Size: 293 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# DSA Hex Game
A fast-paced turn-based game with several advanced algorithms to verse.
This is a C++ implementation of the traditional [Hex board game](https://en.wikipedia.org/wiki/Hex_(board_game)) as seen on [lutanho.net](http://www.lutanho.net/Play/hex.html). This was my sibmission for the first assignment in Data Structures & Algorithms at WSU. Although the game itself is simple, it includes pathfinding and game playing algorithms such as A*, Minimax (with alpha-beta pruning), and Monte-Carlo which have vastly different strategies.
## New Algorithms / Contributing
Pull requests are welcome. As with all my projects, I am constantly on the lookout to add to the collection of algorithms, especially if they outperform all the others. If you can get the minimax working more efficiently I would love to learn how. If you know of an algorithm then I'd love to hear from you, and if you want to have a go at improving my work then by all means do so, I'd love to learn how I can do better with performance, design patterns, and more.
For major changes, please open an issue first to discuss what you would like to change.
## License
[GNU General Public License v3.0](https://choosealicense.com/licenses/gpl-3.0/)
## References
- [A* Algorithm](https://www.geeksforgeeks.org/a-search-algorithm/)
- [Minimax](https://www.chessprogramming.org/Minimax)
- [Alpha-Beta Pruning](https://www.chessprogramming.org/Alpha-Beta)
- [lamesjim's Minimax in Chess](https://github.com/lamesjim/Chess-AI)
- [WY Fok's write-up on Crooks Algorithm (my original source)](https://towardsdatascience.com/solve-sudoku-more-elegantly-with-crooks-algorithm-in-python-5f819d371813)
- [Cornell's page on Crooks Algorithm](http://pi.math.cornell.edu/~mec/Summer2009/meerkamp/Site/Solving_any_Sudoku_II.html)
- [J.F. Crooks's original paper on his algorithm](http://www.ams.org/notices/200904/rtx090400460p.pdf)
- ['Independence Generator'](https://www.geeksforgeeks.org/program-sudoku-generator/)
- [Greg Surma's write-up on minimax](https://gsurma.medium.com/hex-creating-intelligent-opponents-with-minimax-driven-ai-part-1-%CE%B1-%CE%B2-pruning-cc1df850e5bd)
- [Stanford Poster on Algorithm Efficiency & Accuracy in Hex](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwjFnLmm94L3AhWuyjgGHZNpBFwQFnoECAQQAQ&url=http%3A%2F%2Fweb.stanford.edu%2Fclass%2Farchive%2Fcs%2Fcs221%2Fcs221.1192%2F2018%2Frestricted%2Fposters%2Feliew%2Fposter.pdf&usg=AOvVaw1EfWPdkTepZCwkfUYUazsk)