moving game logic server side
parent
0511d661f7
commit
ebbf21d23d
|
|
@ -1,6 +1,8 @@
|
|||
package main
|
||||
|
||||
type Players [16]Player
|
||||
import "fmt"
|
||||
|
||||
type Players []Player
|
||||
|
||||
type Game struct {
|
||||
Pot Currency
|
||||
|
|
@ -26,16 +28,14 @@ type Card struct {
|
|||
Value int
|
||||
}
|
||||
|
||||
func (game Game) GetPlayers() []Player {
|
||||
players := []Player{}
|
||||
for _, player := range game.Players {
|
||||
if !player.Empty() {
|
||||
players = append(players, player)
|
||||
}
|
||||
}
|
||||
return players
|
||||
func (game Game) Equals(gameB Game) bool {
|
||||
return fmt.Sprint(game) != fmt.Sprint(gameB)
|
||||
}
|
||||
|
||||
func (p Player) Empty() bool {
|
||||
return p == (Player{})
|
||||
}
|
||||
|
||||
func (players *Players) Add(player Player) {
|
||||
*players = append(*players, player)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,16 +14,3 @@ func TestPlayerEmpty(t *testing.T) {
|
|||
t.Fatal(p)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGameGetPlayers(t *testing.T) {
|
||||
var g Game
|
||||
if players := g.GetPlayers(); len(players) != 0 {
|
||||
t.Fatal(players)
|
||||
}
|
||||
g.Players[5].ID = "id"
|
||||
if players := g.GetPlayers(); len(players) != 1 {
|
||||
t.Fatal(players)
|
||||
} else if players[0].ID != "id" {
|
||||
t.Fatal(players[0])
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,11 @@ func (gm *GameMaster) GetGame(id string) (Game, error) {
|
|||
gm.locks.RLock(id)
|
||||
defer gm.locks.RUnlock(id)
|
||||
|
||||
return gm.storage.GetGame(id)
|
||||
game, err := gm.storage.GetGame(id)
|
||||
if game.Players == nil {
|
||||
game.Players = make(Players, 0)
|
||||
}
|
||||
return game, err
|
||||
}
|
||||
|
||||
func (gm *GameMaster) CreateGame(id string) error {
|
||||
|
|
|
|||
|
|
@ -47,7 +47,9 @@ func TestGameMasterUpdate(t *testing.T) {
|
|||
t.Fatal(err)
|
||||
}
|
||||
|
||||
game.Players[2].ID = "hi"
|
||||
game.Players.Add(Player{
|
||||
ID: "hi",
|
||||
})
|
||||
game.Pot = 123
|
||||
err = gm.ReplaceGame(id, game)
|
||||
if err != nil {
|
||||
|
|
@ -58,7 +60,7 @@ func TestGameMasterUpdate(t *testing.T) {
|
|||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if game2 != game {
|
||||
if game2.Equals(game) {
|
||||
t.Fatalf("replace+get don't match:\nwant\t%+v\ngot\t%+v", game, game2)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue