<div dir="ltr"><div>I've re-implemented the simple, popular, addictive (be warned!), open source puzzle game 2048 in a single file of Racket:</div><div><br></div><a href="https://github.com/danprager/racket-2048">https://github.com/danprager/racket-2048</a><div>

<br></div><div>It's a clean-room, functional implementation, with I hope reasonable comments. The commented code is just over 500 lines, plus tests.</div><div><br></div><div>One of the nice things about the original 2048 is how many creative variations have been devised: 3D and 4D, hexagonal grid, AI, Tetris version, image-based versions, parodies (including numberwang ;-). There are even sites where you can config your own version. My 8 year-old daughter did a version based on "there was an old lady who swallowed a fly".</div>

<div><br></div><div><div>Code review and suggestions appreciated, or just fork and hack away.<br></div><div><br></div><div>Ideas for improving the existing code:</div><div>* In-game instructions<br></div><div>* Suggestions on using parameters instead of global *constants*</div>

<div>* Sprites instead of first-principles animation</div><div>* Better factoring out of the model and views of the board</div><div>* Caching<br></div><div>* Types</div><div><br></div><div>But I suspect the real fun is in making game variants.</div>

<div><br></div><div>Notes:</div><div>* For less time playing the game try a grid *side* of 3.</div><div>* Hold down the space bar (which just rotates the board) for an animated effect.</div><div>* If you find the game too hard, try watching the AI version for some sense of strategy.</div>

<div><br></div><div>Let me know what you think!</div><div><br clear="all"><div>Dan</div><div><br></div>-- <br><div dir="ltr"><div style="font-family:arial;font-size:small"><b>Daniel Prager</b></div><div style="font-family:arial;font-size:small">

Agile/Lean Coaching, Software Development and Leadership<br></div><div style="font-family:arial;font-size:small"><font color="#999999">Startup: </font><font color="#000000"><a href="http://www.youpatch.com" target="_blank">www.youpatch.com</a></font></div>

<div style="font-family:arial;font-size:small"><font color="#999999">Twitter:</font> <a href="https://twitter.com/agilejitsu" style="color:rgb(17,85,204)" target="_blank">@agilejitsu</a> </div><div style="font-family:arial;font-size:small">

<font color="#999999">Blog:</font> <a href="http://agile-jitsu.blogspot.com/" style="color:rgb(17,85,204)" target="_blank">agile-jitsu.blogspot.com</a></div></div>
</div></div></div>