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}