{"_id":"2048-cli","_rev":"3-e20eca519889fd6b64e43aee54743b5b","name":"2048-cli","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"2048-cli","version":"0.1.0","description":"Play 2048 in your terminal","main":"dist/index.js","bin":{"2048-cli":"dist/index.js"},"scripts":{"start":"npm run build && node ./dist/index.js","build":"tsc --p .","test":"jest","test:watch":"jest --watch"},"prettier":{"semi":true,"singleQuote":true,"tabs":false,"tabWidth":2,"trailingComma":"all","printWidth":80,"arrowParens":"avoid"},"keywords":[],"author":"","license":"ISC","devDependencies":{"@babel/core":"^7.12.10","@babel/preset-env":"^7.12.11","@babel/preset-react":"^7.12.10","@babel/preset-typescript":"^7.12.7","@types/jest":"^26.0.19","@types/node":"^14.14.16","@types/react":"^17.0.0","@typescript-eslint/eslint-plugin":"^4.11.0","@typescript-eslint/parser":"^4.11.0","babel-jest":"^26.6.3","eslint":"^7.16.0","jest":"^26.6.3","prettier":"^2.2.1","typescript":"^4.1.3"},"dependencies":{"ink":"^3.0.8","react":"^17.0.1"},"gitHead":"932a0cca626ec425414d7bd7484c31ddc169d5ba","_id":"2048-cli@0.1.0","_nodeVersion":"14.5.0","_npmVersion":"6.14.10","dist":{"integrity":"sha512-g/mgzZzEeznNHqtcVHRzG5XH6uuFbzduuvm5e/6ySkOlr5Fh0uTB5yZ6UnheKLvgP/czy82FzLn4GU8WC7TwXA==","shasum":"7cd380fd4d654573acd1f47f435bd68a487a0795","tarball":"https://registry.npmjs.org/2048-cli/-/2048-cli-0.1.0.tgz","fileCount":27,"unpackedSize":389462,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6P2RCRA9TVsSAnZWagAAAuwP+wVF9wZshAvGomEZY8/D\nadOsgG86VE+AOaFc0LpbuJrUbHfw1OxhrO5pYz5eGOMMU6N4lExBy+X2Pu39\n1LqYuDG1GZBnGyHNU9en+vFgwq6OSXEG+f1iKOVY+sR59gEhQcaGBoWkh7bY\nvYT6VBKbV3L7W73f//Cd2+tI6e6jK9BRBt21JMCw2dMqE9p06T0iQUBuctw4\n2ZSB5+WmBRA2Ob1OMKBPDPwAxujh3KXFJsT3/stwwrauirOyK1d8uXolrLaG\npfARqaIMD6h3J+CiLKsKM+Nv71hIj3UMkel3hVCIiTnnAfXrngcbRJmVzZUX\nbyPX9wkbCqFkNpXOgo7uRZLEDf5sTg5zBvGLMIXN9mXv9LuJcP9paTr/wIBG\nZn+JeZp/OEs0t1GoYyT66gqUT5il00MMrgfocmz5YBx6wTAXpr9a7DYpeJiH\n5a7ItVQgRir7jnTm7DJ9XDHw0mD6O7pZfFKeK9ADZIO0SZlJ38sfh53E3YiQ\niC0up7CkWlCZntmWT4kJBNuq4iEymltpkSiOdX4j2jjiplQJ2j9eT/le+ZrE\nHs7V438zv7pom5sH1VmucjMpYYuItIf5VDcoCftf5WyiDgID7VOK4zUoOT5J\nlUg0Zvf5YoqsnApjt/FZu1J6A0TlJEMrtdHKvkg20iA4AH3n4aKC2dBFgLMX\n/BKK\r\n=3XzH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBRdAeANjM/7v9JndCfAMXwg6YRdxPVAaOj76dixKrShAiAk+V+Mv+UjA8W1PMgshXOBx/4e1U1hunl03BoE9ITyWA=="}]},"_npmUser":{"name":"nehero","email":"oz.neher@gmail.com"},"directories":{},"maintainers":[{"name":"nehero","email":"oz.neher@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/2048-cli_0.1.0_1609104784682_0.8328131508025538"},"_hasShrinkwrap":false},"0.1.1":{"name":"2048-cli","version":"0.1.1","description":"Play 2048 in your terminal","main":"dist/cli.js","bin":{"2048-cli":"dist/cli.js"},"scripts":{"start":"npm run build && node ./dist/cli.js","build":"tsc --p .","test":"jest","test:watch":"jest --watch","prepublishOnly":"chmod +x ./dist/cli.js"},"prettier":{"semi":true,"singleQuote":true,"tabs":false,"tabWidth":2,"trailingComma":"all","printWidth":80,"arrowParens":"avoid"},"keywords":[],"author":"","license":"ISC","devDependencies":{"@babel/core":"^7.12.10","@babel/preset-env":"^7.12.11","@babel/preset-react":"^7.12.10","@babel/preset-typescript":"^7.12.7","@types/jest":"^26.0.19","@types/node":"^14.14.16","@types/react":"^17.0.0","@typescript-eslint/eslint-plugin":"^4.11.0","@typescript-eslint/parser":"^4.11.0","babel-jest":"^26.6.3","eslint":"^7.16.0","jest":"^26.6.3","prettier":"^2.2.1","typescript":"^4.1.3"},"dependencies":{"ink":"^3.0.8","react":"^17.0.1"},"gitHead":"9641b9b896fd7e6ea5fdf0de58fb927fd918f5e1","_id":"2048-cli@0.1.1","_nodeVersion":"14.5.0","_npmVersion":"6.14.10","dist":{"integrity":"sha512-9xtWGkY9nKJ19QeOZL9Pn4r7FBlBoGF7pzSZxHkQINmPBYfzzj6GsuNvpQ0JP2FNPcUDFvNqpFfx3xsTKuW5mw==","shasum":"e15f6bfd40d6be540af972a88698a80e3a2ecf42","tarball":"https://registry.npmjs.org/2048-cli/-/2048-cli-0.1.1.tgz","fileCount":32,"unpackedSize":395686,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6P/XCRA9TVsSAnZWagAAc6MP/19Hj9eUv3ssTB+BnHZW\nBeoX/lofL8c+tGhYQJDL00mQ/TFI+o6VuXYJ7cDGsj2R62xDDPPIrmVn1NLG\ntGSoWyciBrRQw1ew0+MRiXyTp0igstHOx/LgBAzayPKwq/asMvgC5xbEHxk8\n7hTOoBNRmc3/x97xkNol/4L5JZyYztnQ4OZVl17j1GRFn7M8dGw8FZwPhUCx\nTDjYK1GVD8jUkhS+MDlFRY+ydPfWXZ24LeTjwEzgZdc836wY1NKvGJ6ONdHE\nZkD7dtYCgkAv1PNpEjOSQpa1ijFdshkyf4wHR9JmRMvfq8rRyn8eZzOwynyz\n7LzwbjYDeBOeJUTnrW2DJhhcIZ6kM8GqiHuhijIATcMHdvsfn535L3qYLopY\nhz90R0VU2VOBLSyo2z9BeeFTRdaHxoEc67gkzbGLH34Dc466IrI0zdlxglv6\nkruP2pSeeItttfD6ZUI6r+1zl9Y+cKeQ2jHnjqNMDOiKLtyBT+5jUCFQON6T\nKOMR2B1BolP+1HcA6uvQ/sCNbEQn7cdWim22mqpu/ak4TGvK49O/T+AWOgj5\nwhLGT586GFbkYOv4inQ3xvfjWH1EkcMBqIa3ynu5Ihv2ufzAfIILdvcRJXgM\nt2QWqhY+D+I6ijX6/O1ENk5fFPgCXGDIA8Qz7bBi91LhPIgzYoF+ZQdPbz01\nD8hq\r\n=I+17\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCIN2kCPuM76KqRxzVUFPOx+qxrUsnlSBuyZE1AcfLxWwIhALP0eYqMQgW1e1rXhORC9Pn6VT81PvsZ7lMaQE/WNdsp"}]},"_npmUser":{"name":"nehero","email":"oz.neher@gmail.com"},"directories":{},"maintainers":[{"name":"nehero","email":"oz.neher@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/2048-cli_0.1.1_1609105366623_0.5035055702987037"},"_hasShrinkwrap":false},"0.1.2":{"name":"2048-cli","version":"0.1.2","description":"Play 2048 in your terminal","main":"dist/cli.js","bin":{"2048-cli":"dist/cli.js"},"scripts":{"start":"npm run build && node ./dist/cli.js","build":"tsc --p .","test":"jest","test:watch":"jest --watch","prepublishOnly":"chmod +x ./dist/cli.js"},"prettier":{"semi":true,"singleQuote":true,"tabs":false,"tabWidth":2,"trailingComma":"all","printWidth":80,"arrowParens":"avoid"},"keywords":[],"author":"","license":"ISC","devDependencies":{"@babel/core":"^7.12.10","@babel/preset-env":"^7.12.11","@babel/preset-react":"^7.12.10","@babel/preset-typescript":"^7.12.7","@types/jest":"^26.0.19","@types/node":"^14.14.16","@types/react":"^17.0.0","@typescript-eslint/eslint-plugin":"^4.11.0","@typescript-eslint/parser":"^4.11.0","babel-jest":"^26.6.3","eslint":"^7.16.0","jest":"^26.6.3","prettier":"^2.2.1","typescript":"^4.1.3"},"dependencies":{"ink":"^3.0.8","react":"^17.0.1"},"gitHead":"9641b9b896fd7e6ea5fdf0de58fb927fd918f5e1","_id":"2048-cli@0.1.2","_nodeVersion":"14.5.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-vykgxtaOqYUrQzFMiHfe7e7UctVjdrtjj7X53KhZQHLZ9787+IQSiNQZ++bSfVWFZikF1vs/lcDcQrjZzIMjPQ==","shasum":"c79bf14ec09051ba9b7d26e00b24c63661cb60f3","tarball":"https://registry.npmjs.org/2048-cli/-/2048-cli-0.1.2.tgz","fileCount":32,"unpackedSize":397445,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6iO6CRA9TVsSAnZWagAAgZUP/jIWxOrLxhEHeJTOy693\ngl5iOixOktVo7LzbujRn7kM0VR78NrUxDZYMwqlaGMNEtKejmRaCjJaFSWyU\n9EyXDkhLZlAtZI/JdKzEFPL3ENg6xodLVyTaXMiDjJk8WJZ/k7vM0P56CLjm\nTnltnQPAVkBvP45ZQgVa7QHL8y3UvBlLgncCh1xSq3aPxfoOhGI5pN8PFbWA\n/Os83BSn8hM4k2BalfyLiudg6DWQVMQWYapamXR+nwSV/6b+6R2svvaRyoMm\naDclwVD67MppTII9aGk10NBP7nSwQb8T6J4iR6RGupD2Yy9HxNJz/rmPlNr+\n1X6A6/5v73nMpaBa+O99Dpy/hx++qC+br7HyXzc+N9KlPPZEO66TsDMkKw+J\nJX7epz2pgj4GFmcGCKT6Pu1BMy5cphVzv5RuoGjpuVDxziFptPpX6voKyZLp\nN62Y9bcZu2bm8xkFmDId0Ic6qld3ssUuJeZvHqV3MQF9wkVzXWE8olY1GLiu\njl9kczuZcuM/5/r8wVKKpQG7NPCPN3C5lw5LUwO5rMfd8K+QS+y2CoWN1boD\n/wU0Kblc28nbRqf1f+Y1dIHnrwqmVsQaVvmSIwOGWpDyJB0aQZ42K4Khk0Yc\n+VOCmfoFk+tBujEdKfd/2TPqGMCnemGsm3/QS5vRSmPI9qJj8YpAEMLkwzeh\nmEZ/\r\n=cjtU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9xP0wL7fLVKG/erFDWmFVyGRPygfNft+oVqqCETmGpwIgLLLZD1DCTRc7GzE3F9jlAVtKsq60Wc9c271sfLfSWsE="}]},"_npmUser":{"name":"nehero","email":"oz.neher@gmail.com"},"directories":{},"maintainers":[{"name":"nehero","email":"oz.neher@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/2048-cli_0.1.2_1609180090042_0.23913570058813471"},"_hasShrinkwrap":false}},"time":{"created":"2020-12-27T21:33:04.682Z","0.1.0":"2020-12-27T21:33:04.821Z","modified":"2022-04-04T10:18:07.014Z","0.1.1":"2020-12-27T21:42:46.849Z","0.1.2":"2020-12-28T18:28:10.247Z"},"maintainers":[{"name":"nehero","email":"oz.neher@gmail.com"}],"description":"Play 2048 in your terminal","keywords":[],"license":"ISC","readme":"# 2048\n\nCLI implementaiton of the game \"2048\".\n\n![screenshot of the game playing in the cli](./static/gameplay.png)\n\n## Playing\n\nQuickly:\n\n```\n$ npx 2048-cli\n```\n\nFrom source:\n\n```\n$ git clone https://github.com/ozziexsh/2048.git\n$ cd 2048\n$ npm i\n$ npm start\n```\n\n## Testing\n\nTesting done via jest\n\n```\n$ npm test\n```\n\n## Contributing\n\nPR's welcome!\n\nTech stack is\n\n- Node\n- TypeScript\n- React\n- [ink](https://github.com/vadimdemedes/ink)\n- jest\n- Prettier\n- ESLint\n\nThe code is broken out into a few pieces:\n\n- [board.ts](https://github.com/ozziexsh/2048/blob/master/src/board.ts) - This is the class that handles the position of numbers on the board as well as moving them around. Contains logic for combing numbers together however doesn't perform any special checks when calling the respective `moveXyz` methods.\n- [game.ts](https://github.com/ozziexsh/2048/blob/master/src/game.ts) - This class contains a single board instance and performs more logic around the moves such as spawning new numbers.\n","readmeFilename":"readme.md"}