Really simple Connect4 game you can play in the terminal.
You do have to npm install
since I haven't packed it up nicely.
Game has built-in help, but as you can see it's pretty straightforward. Run game.js
, type start
to begin a game, and place #
to drop in a row.
You can also check the board (say if you check the help?) with show
, or type help
to see that any time.
As far as the code goes:
connect4.js
has the game logic, only exposes two functions (exported on an object): makeBoard
and placeToken
. While you can probably guess what those do, makeBoard
is hardcoded at 7x6 but easy to extend, placeToken
takes a column/row/player # (1 or 2)/board and returns an object with the new board and current state, 0 being in-progress and 1/2 if someone has won.
game.js
runs the client, using Vorpal for the interactive CLI and cli-color for the "pretty" board display. Should be easy to read (only ~100 lines, mostly Vorpal stuff), the start-new-game-in-middle-of-old-one hidden yes
command is a quick hack because the vorpal.prompt
wasn't working as-expected from the documentation; didn't take the time to track down why.
If I'm inspired to fiddle with this somemore (mostly as an exercise in JS CLI), you can expect me to hit the TODOs:
- Determine if Vorpal prompt thing is a bug/version mismatch/documentation error
- Animate token drop
- Add tests & code clean up
- Save/resume games
- Extra interfaces (network, HTML, WebGL, whatever - totally works via shared tmux if you must)