The maze book for programmers!

Algorithms, circle mazes, hex grids, masking, weaving, braiding, 3D and 4D grids, spheres, and more!

DRM-Free Ebook

The Buckblog

assorted ramblings by Jamis Buck

Weekly Programming Challenges -- Recap

19 November 2016 — Recapping the last 16 weeks of weekly programming challenges — 2-minute read

It’s a little hard for me to believe that these weekly programming challenges have run for sixteen weeks now. I’ve enjoyed it greatly, and I hope others have, too.

The challenges are going to be taking a little hiatus, though, at least through the end of the year. I’d like to pick it up again in January, but I make no promises!

In the meantime, there are sixteen weeks’ worth of weekly challenges for you to go back and try. If you’ve already done them, try them again with another programming language, or add your own hard mode constraints to them and see what you come up with. Feel free to suggest new challenges, as well–just shoot me an email or tweet @jamis and I’ll add them to my list.

Read to the end if you’d like a convenient list of all 16 challenges, but first, let’s recap week #16.

Week #16 Recap

For the 16th weekly programming challenge, we tackled the midpoint displacement algorithm.

Our participants for week #16 were:

  1. Leon Rische, who implemented the algorithm in Crystal and got normal mode, as well as hard modes #1 (accept a list of line segments), #2 (displace perpendicular to line, rather than x-axis), and #6 (the Diamond-Square algorithm, worth three points!), for a total of six points! Further, he used his own homemade ray-tracer to render the output of the Diamond-Square algorithm, which I have to say qualifies for “surprise me”. Fantastic job! Check out his code (and some pictures) here:
  2. Daniel Hader, who wrote his submission in Javascript and got normal mode, plus the hard modes #2 (displace perpendicularly) and #5 (store and render intermediate steps), for a total of three points! Find his code (and some pictures) here:

Great work! My own submission is in Ruby, here: It implements normal mode, as well as hard mode #5, for a total of two points.

Great work, everyone.

Previous Challenges

The previous weekly challenges are:

  1. Binary Search Tree
  2. Grammar-Based Name Generation
  3. Solving Mazes
  4. Drawing Lines
  5. Binary Heap and Priority Queue
  6. Perlin Noise
  7. B+ Tree
  8. Calculator Parser/Interpreter
  9. Bezier curves
  10. Network programming
  11. Drawing Circles
  12. Family Trees
  13. Poisson Disk Sampling
  14. Lindenmayer Systems
  15. Turtle Graphics
  16. Midpoint Displacement

Thanks for participating!