Skip to content

Instantly share code, notes, and snippets.

@ElectricCoffee
Created September 29, 2022 12:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ElectricCoffee/b1cc42c437b992b8515949d3f217d0cb to your computer and use it in GitHub Desktop.
Save ElectricCoffee/b1cc42c437b992b8515949d3f217d0cb to your computer and use it in GitHub Desktop.
an idea for a 'game description language' for board games inspired by the Plain English programming language
name: Carnac
players: 2
components:
- 28 megaliths
- 3 boards
board sizes: small, medium, and large.
player actions are: proceed and skip.
to check if able to topple:
if no megalith, return unable.
check for two contiguous free spaces next to the megalith.
if there are no free spaces, return unable.
else return able
to topple a megalith:
choose the last placed megalith
turn it on its side, leaving the space it started on free
to check if able to erect:
if megalith pool is empty, return unable
check for free spaces on the board
if there are no free spaces, return unable
else return able
to erect a new megalith:
take a megalith from the pool
place it on an empty square on a short side
setup:
choose board size
set aside the 28 megaliths
players choose colours (red or white)
choose active player
goto game
game:
:topple megalith if able
:erect new megalith if able
goto end if unable
switch player
goto game:erect if player action is proceed
goto game:topple if player action is skip
end:
count contiguous groups of size 3 or greater
player with most groups of their own colour wins
player with largest group wins if tied
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment