Skip to content

A Python implementation of the board game Santorini with 2 player mode and bots with different difficulties

Notifications You must be signed in to change notification settings

tjl0005/Santorini-Boardgame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Santorini-Bot

Breakdown and Future Aspirations

This project implements a fully playable version of the board game Santorini in Python, with different play modes. Currently, a two player mode and two AI modes using Greedy (Easier) and Minimax (Harder) approaches.

The versus mode is hoped to be expanded upon using Monte Carlo Search and potentially further refining of the current MiniMax implementation.

Graphic Version

This version has a full GUI used to play the game and is intended to be self-explanatory. The default mode means the game will start with two players and pre-set starting positions. To change these settings you must use the options menu to change the play mode to either Minimax or Greedy, or it can be updated so the user selects their starting positions.

Text Version

When running the code you will be firstly asked for the starting points of the workers. These inputs are validated and must be in the form of "2,1". Where the first number represents the row and the second represents the column. Then you will be asked to select your play mode, either two players (You and yourself or someone else) or bot. If you choose to face a bot you can either play against the easy implementation (Using a greedy approach) or the difficult (Currently medium and uses minimax) to play against. Once this selection is made you will be prompted to select a worker and decide if you want to move or build.

You select the tile you want using the WASD keys, and you can move diagonally by combining directions e.g. Left/Up is WA .

Santorini Walk-through

The game will end when a player has a worker on level 3. More details on playing the game are below. A great guide is available at: https://en.boardgamearena.com/doc/Tips_santorini and a basic rundown of the game is below

Basics

  • Currently, just 2 players
  • Each player has 2 workers
    • Able to move and climb
    • Able to move and build (Base, Mid, Top and Dome)
    • Able move to adjacent squares
  • 5 * 5 Checker-Board Layout
  • Turn Based, a player can either move worker or build once (unless otherwise specified)
  • First worker up to three levels wins

Gods

Provide unique buffs/skills:

  • Prometheus: Worker can build if they do not move up (before and after moving)
  • Hephaestus: Worker may build additional block (Not dome) on top of first block
  • Demeter: Worker can build additional time but not on same space
  • Hermes: If workers do not move up/down, they may move unlimited times (even zero)

Setup

  • Workers can be placed on any empty space on the board
  • Best to keep adjacent tiles free of workers for each player

Movement

  • Can move one space
  • Can build one level in an adjacent space (8 total) Progressing
  • Players can climb and descend buildings
  • Incremental progression you can climb one level at a time
  • First player up to third level wins
  • Any player can build
  • Player can add 4th level, the dome, which means it cannot be climbed anymore.

About

A Python implementation of the board game Santorini with 2 player mode and bots with different difficulties

Topics

Resources

Stars

Watchers

Forks

Languages