24game
v1.0.1
Published
The [24 Game](https://en.wikipedia.org/wiki/24_Game) tests one's mental arithmetic.
Downloads
10
Readme
The 24 Game
The 24 Game tests one's mental arithmetic.
Task Description
Write a program that randomly chooses and displays four digits, each from 1 ──► 9 (inclusive) with repetitions allowed.
The program should prompt for the player to enter an arithmetic expression using just those, and all of those four digits, used exactly once each. The program should check then evaluate the expression.
The goal is for the player to enter an expression that (numerically) evaluates to 24.
Only the following operators/functions are allowed: multiplication, division, addition, subtraction
Division should use floating point or rational arithmetic, etc, to preserve remainders.
Brackets are allowed, if using an infix expression evaluator.
Forming multiple digit numbers from the supplied digits is disallowed. (So an answer of 12+12 when given 1, 2, 2, and 1 is wrong).
The order of the digits when given does not have to be preserved.
Examples
solve: 1 2 3 4
(4 * 3 * 2) + 1
no, this is 25
solve: 1 2 3 4
4 * 3 * (1 + 1)
sorry, this is not a valid expression
solve: 1 2 1 1
12 * (1 + 1)
sorry, this is not a valid expression
solve: 1 1 1 1
(1 + 1 + 1 + 1)!
sorry, this is not a valid expression
solve: 8 4 7 4
(7 - (8 / 8)) * 4
yes, this is indeed 24
Solution
Project overview:
coding-seh
├── .gitignore
├── README.md
├── src
│ ├── 24game.js // main 24 game file
│ ├── 24game.test.js // main 24 game test file
│ ├── evaluator.js // rpn evaluator
│ └── evaluator.test.js.js // rpn evaluator tests
├── bin
│ └── index.js // executable game file
├── package.json
└── ...
Usage
From the repo you need to run:
$ npm install // to install the dependencies
$ npm run start // to start the game
$ npm run help // displays the help page
Alternatively you can install the npm package globally using:
$ npm install -g 24game
and then you can run it simply by running: $ 24game
$ 24game --help // displays the help page