Go to file
2021-07-22 13:43:28 -04:00
board.go you can win the game now 2021-07-22 13:43:28 -04:00
card.go command loop active, fix some obvious bugs 2021-07-16 15:35:29 -04:00
cmd.go debug commands 2021-07-22 13:21:49 -04:00
deck.go have to draw first, start moving past debug 2021-07-22 12:44:25 -04:00
game_view.go use cmd and cmd_res, return views 2021-07-22 13:09:56 -04:00
game.go you can win the game now 2021-07-22 13:43:28 -04:00
go.mod initial work, action moves set 2021-07-15 19:26:57 -04:00
main.go you can win the game now 2021-07-22 13:43:28 -04:00
Makefile add makefile, shuffle properly, more card fixes 2021-07-16 14:08:19 -04:00
player.go have to draw first, start moving past debug 2021-07-22 12:44:25 -04:00
README.md formatting 2021-07-16 15:53:50 -04:00

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 <player id> <command character> 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 <x>: Draw card at position x from your most recent scry
p <x> <y>: play card at postion x in your hand to postion y on your side of the board (from the left)
m <x> <y>: move card at position x on the board to position y on the board
a <x> <y>: 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