Files
prosperon/examples/chess/game_state.cm
2026-02-25 22:13:42 -06:00

32 lines
744 B
Plaintext

var Piece = use('examples/chess/pieces').Piece
function serialize(grid, turn) {
var pieces = []
grid.each(function(p) {
pieces[] = {kind: p.kind, colour: p.colour, x: p.coord[0], y: p.coord[1], id: p._id}
})
return {type: "state", turn: turn, pieces: pieces}
}
function deserialize(state, grid, board_view) {
var x = 0, y = 0
for (y = 0; y < 8; y++) {
for (x = 0; x < 8; x++) {
grid.cells[y][x] = []
}
}
var i = 0, pd = null, p = null
for (i = 0; i < length(state.pieces); i++) {
pd = state.pieces[i]
p = Piece(pd.kind, pd.colour)
p._id = pd.id
grid.add(p, [pd.x, pd.y])
}
board_view.rebuild_pieces(grid)
return state.turn
}
return {serialize: serialize, deserialize: deserialize}