board

package
v1.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 10, 2023 License: AGPL-3.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BoardServer

type BoardServer struct {
	// contains filtered or unexported fields
}

A minimal server capable of handling the requests from a single browser client running the board viewer.

func NewBoardServer

func NewBoardServer(game Game) *BoardServer

func (*BoardServer) Listen

func (server *BoardServer) Listen() (string, error)

func (*BoardServer) SendEvent

func (server *BoardServer) SendEvent(event GameEvent)

func (*BoardServer) Shutdown

func (server *BoardServer) Shutdown()

type Death

type Death struct {
	Cause        string `json:"Cause"`
	Turn         int    `json:"Turn"`
	EliminatedBy string `json:"EliminatedBy"`
}

type Game

type Game struct {
	ID           string            `json:"ID"`
	Status       string            `json:"Status"`
	Width        int               `json:"Width"`
	Height       int               `json:"Height"`
	Ruleset      map[string]string `json:"Ruleset"`
	SnakeTimeout int               `json:"SnakeTimeout"`
	Source       string            `json:"Source"`
	RulesetName  string            `json:"RulesetName"`
	RulesStages  []string          `json:"RulesStages"`
	Map          string            `json:"Map"`
}

JSON structure returned by the game status endpoint.

type GameEnd

type GameEnd struct {
	Game Game `json:"game"`
}

type GameEvent

type GameEvent struct {
	EventType GameEventType `json:"Type"`
	Data      interface{}   `json:"Data"`
}

Top-level JSON structure sent in each websocket frame.

type GameEventType

type GameEventType string

The websocket stream has support for returning different types of events, along with a "type" attribute.

const (
	EVENT_TYPE_FRAME    GameEventType = "frame"
	EVENT_TYPE_GAME_END GameEventType = "game_end"
)

type GameFrame

type GameFrame struct {
	Turn    int           `json:"Turn"`
	Snakes  []Snake       `json:"Snakes"`
	Food    []rules.Point `json:"Food"`
	Hazards []rules.Point `json:"Hazards"`
}

Represents a single turn in the game.

type Snake

type Snake struct {
	ID            string        `json:"ID"`
	Name          string        `json:"Name"`
	Body          []rules.Point `json:"Body"`
	Health        int           `json:"Health"`
	Death         *Death        `json:"Death"`
	Color         string        `json:"Color"`
	HeadType      string        `json:"HeadType"`
	TailType      string        `json:"TailType"`
	Latency       string        `json:"Latency"`
	Shout         string        `json:"Shout"`
	Squad         string        `json:"Squad"`
	Author        string        `json:"Author"`
	StatusCode    int           `json:"StatusCode"`
	Error         string        `json:"Error"`
	IsBot         bool          `json:"IsBot"`
	IsEnvironment bool          `json:"IsEnvironment"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL