Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stephenbensley/goosey
Goosey is a cribbage AI written in C++.
https://github.com/stephenbensley/goosey
cribbage
Last synced: 14 days ago
JSON representation
Goosey is a cribbage AI written in C++.
- Host: GitHub
- URL: https://github.com/stephenbensley/goosey
- Owner: stephenbensley
- License: mit
- Created: 2022-08-27T16:38:26.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-12T02:00:39.000Z (3 months ago)
- Last Synced: 2024-11-06T03:16:59.768Z (2 months ago)
- Topics: cribbage
- Language: C++
- Homepage:
- Size: 428 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Goosey
Goosey is a cribbage AI. It is full-featured, well-tested, and plays a strong game (although I have no practical way to quantify that). However, I believe there is ample room for improvement, so in that sense, it is still a work in progress.
### License
The source code for this repo has been released under the [MIT License](LICENSE).
### Copyright
© 2022 Stephen E. Bensley
## Building from Source
Goosey was developed with [Xcode](https://developer.apple.com/xcode/), which is freely available from Apple. After installing Xcode and cloning the repo, open the Xcode [project](Goosey.xcodeproj) at the root of the repo. Check out the most recent tag to ensure a stable build.
The code is entirely standards-compliant C++17, so it should be easy to compile on other platforms.
### Dependencies
None.
### Targets
The Xcode project has the following targets:
- Static libraries:
- BoardStrategy: Estimates the probability of the dealer winning the game from a given board position.
- CardPlayStrategy: Strategy for the pegging portion of a Cribbage game.
- DiscardStrategy: Strategy for the discard portion of a Cribbage game.
- GameModel: Core logic for playing a game of Cribbage.
- Players: Various AIs for playing Cribbage.
- CopyDataFiles: Copies the various data files to the products directory.
- gen_file: Command-line tool that generates the various data files. Run without arguments to display usage.
- play_match: Command-line tool that play matches between various strategies. Run without arguments to display usage.
- run_tests: Unit tests implemented using [Catch2](https://github.com/catchorg/Catch2)