Ejemplo n.º 1
0
 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;
 });
Ejemplo n.º 2
0
      .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;
      });
Ejemplo n.º 3
0
 _.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('');
   }
 });
Ejemplo n.º 4
0
 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();
   });
 });
Ejemplo n.º 5
0
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();
});