https://github.com/salekinsirajus/breakthrough
Breakthrough game, playing with an AI agent
https://github.com/salekinsirajus/breakthrough
adversarial-search artificial-intelligence breakthrough breakthrough-game python
Last synced: about 1 year ago
JSON representation
Breakthrough game, playing with an AI agent
- Host: GitHub
- URL: https://github.com/salekinsirajus/breakthrough
- Owner: salekinsirajus
- License: mit
- Created: 2018-02-12T01:47:42.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-03-02T18:15:13.000Z (over 8 years ago)
- Last Synced: 2025-02-14T12:42:36.404Z (over 1 year ago)
- Topics: adversarial-search, artificial-intelligence, breakthrough, breakthrough-game, python
- Language: Python
- Size: 77.1 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Breakthrough
Breakthrough game, AI agents playing.
# Contributors
Ali Shahram Musavi, Swomma Roy and Sirajus Salekin
# How To Play
1. Make sure you have `python 3` installed.
2. Run `python game.py` and follow the instructions.
3. If you want to play with Evasive and House Lannister, type `1 3` when
prompted
1. Evasive
2. Conquerer
3. House Lannister
4. House Stark
4. After choosing the opponents, you need to choose the board you want
to play on. For example, if you want to play on a (3x3, 1) board, Enter
`3 3 1`, respectively.
# Unit Testing
Simply run the `testTransition.py` file:
```python testTransition.py```
# Progress
* Finished implementing `Board` Class methods
* `get_moves(position)`
* `is_valid(source, destination)`
* `get_sym(position)`
* `get_direction(position)`
* Integrated `display_state()`
* Integrated `terminal_state()`
* Add `self.turn` to the `Board` and check before moving
any piece to ensure the integrity of the game
* Implement `move_generator(player)` method that will provide
all the moves for a particular player
* Test coverage for finished methods
- [x] `get_moves(position)`
- [x] `is_valid(source, destination)`
- [x] `all_moves(player)`
- [x] `move(position, direction)`
- [ ] `get_sym(position)`
- [ ] `get_direction(position)`
- [ ] `display_state()`
- [ ] `terminal_state()`
# ToDo
- [x] Finish implementing the `Agent` class
- [x] Decide whether to implement a function or class for `Game`
- [x] Finish `minimax` tree
- [x] Implement `conquerer` and 2 more utility functions