board.go | ||
card.go | ||
deck.go | ||
game.go | ||
go.mod | ||
main.go | ||
Makefile | ||
player.go | ||
README.md |
Defense of the SnederDome
A quick and dirty prototype of a game server for snengame.
Written in-between concussion dizzy spells; some decisions made to minimize having to think hard about them. Other decisions made to ease the Soon(tm) networkification of this code.
What's implemented
- Most cards (Jokers are Valkyires)
- Playing, moving, attacking cards
- A hacky loop to test out game commands
What's not implemented
- Actually winning or losing
- Ready checking
- Second player draws an extra card
How to test
Run the snengame binary to use the built in game loop.
Commands are entered like so: s|a arguments
State Commands: d: Print debug screen g: Print game screen b: Begin game s: Start turn e: End turn Action Commands: s: Scry your life points in cards d : Draw card at position x from your most recent scry p : play card at postion x in your hand to postion y on your side of the board (from the left) m : move card at position x on the board to position y on the board a : attack position y with card at position x on the board
Example Commands: s 1 d: (available to both players at any time) show debug screen s 1 g: (available to both players at any time) show game screen s 1 s: Start Player 1 (Sentinal)'s turn a 2 p 0 1: Player 2 (Scourge) places the card at hand position 0 on board position 1 a 2 d 2: Player 2 (Scourge) draws the card at position 2 of their most recent scry
Other notes:
Player 1 (the top side of the board) is known as Sentinal. Player 2 (the bottom side of the board) is known as Scourge. Yes these are from DOTA Allstars
Any player can begin the game; whichever player presses the start command first goes first