return request(options).then(function (data) { var tempGrid = new Grid(data.grid); data.turn = 0; data.maxTile = tempGrid.maxTile(); data.progress = tempGrid.progress(); //console.log(data); return data; });
.then(function (data) { data.turn = ++turn; data.algorithm = algorithm; data.predict_this = gamestate.predict_next; var tempGrid = new Grid(data.grid); var summary = tempGrid.summary(); data.newTile = tempGrid.diff(gamestate.predict_next); for (var element in summary) { data[element] = summary[element]; } //console.log({data:data}); return data; });
_.each(gamestates, function (val, key) { if (val.grid) { var tempGrid = new Grid(val.grid); tempGrid.normalize(); grids.push(tempGrid.render(val.newTile)); //grids.push(tempGrid.render()); maxTiles.push(tempGrid.maxTile()); } if (val.desiredMove) { desired.push(val.desiredMove); } else { desired.push(''); } if (val.predict_next) { predicts.push(new Grid(val.predict_next).render()); } else { predicts.push(''); } });
Tree.findOne({gridHash: crypto.createHash('sha256').update(JSON.stringify(nextNormalize.normalize())).digest("hex")}).exec(function (err, nextTreeData) { if (err) { throw err; } if (!nextTreeData) { nextTreeData = new Tree({ grid: nextNormalize.normalize(), gridHash: crypto.createHash('sha256').update(JSON.stringify(nextNormalize.normalize())).digest("hex"), tileCount: nextNormalize.tileCount(), uniqTiles: nextNormalize.summary().uniqTiles, maxTile: nextNormalize.maxTile() }); nextTreeData.save(); } else { //nextTreeData.save(); } Tree.update({_id: curTreeData._id}, { $addToSet: {next: nextTreeData._id, turns: self.turn}, $max: {maxScore: self.score}, $min: {minScore: self.score}, $inc: {sumScore: self.score}, $set: {nearEnd: new Grid(curNormalize.normalize()).nearEnd()} }, function () { next(); }); });
log.pre('save', function (next) { var eventTime = Date.now(); var self = this; if (!self.created_at) { self.created_at = eventTime; } self.updated_at = eventTime; var curNormalize = new Grid(self.predict_this); var nextNormalize = new Grid(self.predict_next); //Tree.findOne({grid: curNormalize.normalize()}).exec(function (err, curTreeData) { Tree.findOne({gridHash: crypto.createHash('sha256').update(JSON.stringify(curNormalize.normalize())).digest("hex")}).exec(function (err, curTreeData) { if (err) { throw err; } if (!curTreeData) { curTreeData = new Tree({ grid: curNormalize.normalize(), gridHash: crypto.createHash('sha256').update(JSON.stringify(curNormalize.normalize())).digest("hex"), tileCount: curNormalize.tileCount(), uniqTiles: curNormalize.summary().uniqTiles, maxTile: curNormalize.maxTile() }); curTreeData.save(); } else { //curTreeData.save(); } //self.tree.push(curTreeData._id); //self.tree = _.uniq(self.tree.sort()); self.tree = curTreeData._id; //Tree.findOne({grid: nextNormalize.normalize()}).exec(function (err, nextTreeData) { Tree.findOne({gridHash: crypto.createHash('sha256').update(JSON.stringify(nextNormalize.normalize())).digest("hex")}).exec(function (err, nextTreeData) { if (err) { throw err; } if (!nextTreeData) { nextTreeData = new Tree({ grid: nextNormalize.normalize(), gridHash: crypto.createHash('sha256').update(JSON.stringify(nextNormalize.normalize())).digest("hex"), tileCount: nextNormalize.tileCount(), uniqTiles: nextNormalize.summary().uniqTiles, maxTile: nextNormalize.maxTile() }); nextTreeData.save(); } else { //nextTreeData.save(); } Tree.update({_id: curTreeData._id}, { $addToSet: {next: nextTreeData._id, turns: self.turn}, $max: {maxScore: self.score}, $min: {minScore: self.score}, $inc: {sumScore: self.score}, $set: {nearEnd: new Grid(curNormalize.normalize()).nearEnd()} }, function () { next(); }); }); }); //next(); });