untitled notebook

node v6.17.1
version: master
endpointsharetweet
var _ = require("lodash/fp"); let game = [[2, 2, 0, 0], [4, 0, 4, 0], [8, 0, 0, 8], [16, 16, 0, 0]]; // Sample state let slide = _.flow( _.reduceRight( (v, acc) => v === 0 ? [_.concat(acc[0], v), acc[1]] : [acc[0], _.concat(v, acc[1])], [[], []] ), _.flatten ); let merge = _.flow( _.reduceRight( (v, acc) => { acc[0].unshift(v); if (acc[0].length === 2) { if (acc[0][0] === acc[0][1]) { acc[1] = _.concat(0, _.concat(acc[0][0] + acc[0][1], acc[1])); acc[0] = []; } else { acc[1] = _.concat(acc[0].pop(), acc[1]); } } return acc; }, [[], []] ), _.flatten ); let take = arr => arr.slice(0,4); // Moves one line let moveLine = _.flow( slide, merge, take ); // Moves the 4 lines let moveBoard = _.map(moveLine) console.log(moveBoard(game));
Loading…

no comments