Weekly Programming Challenges -- Recap
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:
- 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: https://github.com/l3kn/weekly_16.
- 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: https://github.com/DanielHader/midpoint_displacement.
Great work! My own submission is in Ruby, here: https://github.com/jamis/weekly-challenges/tree/master/016-midpoint-displacement. 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:
- Binary Search Tree
- Grammar-Based Name Generation
- Solving Mazes
- Drawing Lines
- Binary Heap and Priority Queue
- Perlin Noise
- B+ Tree
- Calculator Parser/Interpreter
- Bezier curves
- Network programming
- Drawing Circles
- Family Trees
- Poisson Disk Sampling
- Lindenmayer Systems
- Turtle Graphics
- Midpoint Displacement
Thanks for participating!