Realm

gno.land/r/moul/x/daily/tictactoe/v1

Rendered output

Tic-Tac-Toe

2-player tic-tac-toe. Call NewGame(opponent) to start; view a game at /<id>.

No games yet.

Query (read-only)

non-crossing functions · no tx, no wallet needed
GetGame(id int) → *gno.land/r/moul/x/daily/tictactoe/v1.Game, interface {Error func() string}

Call functions (state-changing)

signs a tx via Adena
Move(gameID int, cell int)
NewGame(opponent string)

All exported functions (4)

show raw signatures
NameParamsReturns
NewGame [{"Name": "cur", "Type": "interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}", "Value": ""}, {"Name": "opponent", "Type": "string", "Value": ""}] [{"Name": ".res.0", "Type": "int", "Value": ""}]
Move [{"Name": "cur", "Type": "interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}", "Value": ""}, {"Name": "gameID", "Type": "int", "Value": ""}, {"Name": "cell", "Type": "int", "Value": ""}]
GetGame [{"Name": "id", "Type": "int", "Value": ""}] [{"Name": ".res.0", "Type": "*gno.land/r/moul/x/daily/tictactoe/v1.Game", "Value": ""}, {"Name": ".res.1", "Type": "interface {Error func() string}", "Value": ""}]
Render [{"Name": "path", "Type": "string", "Value": ""}] [{"Name": ".res.0", "Type": "string", "Value": ""}]

Files

Storage

{
  "raw": "storage: 16671, deposit: 1667100"
}