32 lines
744 B
Plaintext
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}
|