Creating some AIs to play the board game, Santorini
Note: I do not claim any affiliation with Santorini. All credit goes to the developers.
- RandomAgent (very easy)
- See Random.pyfor implementation.
- Just chooses random actions!
 
- See 
- FSAgent (easy)
- See FS.pyfor implementation.
- Implements Markov decision process (MDP) forward search.
- Enumerates every possible state to a certain depth but doesn't consider your actions
- Will win if left alone but is easy to beat if you're mean to it!
 
- See 
- MiniMaxAgent (medium)
- See MiniMax.pyfor implementation.
- Implements mini-max search with alpha-beta pruning.
- Enumerates every possible state to a certain depth and assumes you take optimal actions every turn!
- Plays a decent game but plays very conservatively and can only look a few turns ahead.
 
- See 
- Play against RandomAgent: python3 Game.py --agent Random
- Play against FSAgent: python3 Game.py --agent FS
- Play against MiniMaxAgent: python3 Game.py --agent MiniMax
- Your player: B
- The opponent: O
For either moving or building:
- Up (u)
- Down (d)
- Left (l)
- Right (r)
- Up-Left (ul)
- Up-Right (ur)
- Down-Left (dl)
- Down-Right (dr)