The maze book for programmers!
mazesforprogrammers.com

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

Nov 2016

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: https://github.com/l3kn/weekly_16.
  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: 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:

  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!

Weekly Programming Challenge #16

12 November 2016 — The Midpoint Displacement Algorithm — 4-minute read

Weekly Programming Challenge #15

5 November 2016 — Turtle Graphics — 3-minute read
Oct 2016

Weekly Programming Challenge #14

29 October 2016 — Lindenmayer Systems — 4-minute read

Weekly Programming Challenge #13

22 October 2016 — Poisson Disk Sampling with Bridson's Algorithm — 4-minute read

Weekly Programming Challenge #12

15 October 2016 — 4-minute read

Weekly Programming Challenge #11

8 October 2016 — 3-minute read

Weekly Programming Challenge #10

1 October 2016 — 5-minute read

Sep 2016

Weekly Programming Challenge #9

24 September 2016 — 5-minute read

Weekly Programming Challenge #8

17 September 2016 — 5-minute read

Weekly Programming Challenge #7

10 September 2016 — 1-minute read

Aug 2016

Weekly Programming Challenge #5

27 August 2016 — 1-minute read

Jul 2016

Weekly Programming Challenges

30 July 2016 — 1-minute read

Jun 2016

Truth: Generating Truth Tables

11 June 2016 — 2-minute read

May 2016

Disrupting Your Comfort Zone

28 May 2016 — 1-minute read

Think You’re Failing? Look Around.

14 May 2016 — 1-minute read

The Minimalist Programmer

7 May 2016 — 1-minute read

Apr 2016

Tapping ActiveRecord Relations

23 April 2016 — 2-minute read

Medium.com

2 April 2016 — 1-minute read

Mar 2016

Introducing the Query Composer

26 March 2016 — 4-minute read

The Poverty of Constraints

19 March 2016 — 1-minute read

Variations on a Theme: "I Becomes We..."

12 March 2016 — 2-minute read

Being a Good Neighbor...

5 March 2016 — 6-minute read

Feb 2016

Implementing a Bloom Effect with Swift+Metal

27 February 2016 — 7-minute read

Don't Feed the Hamster the Whole Stalk

20 February 2016 — 6-minute read

The weakly-flowing stream

13 February 2016 — 4-minute read

Living with Your Eyes Open

6 February 2016 — 6-minute read

Jan 2016

Software Proverbs

30 January 2016 — 4-minute read

Mazes in Swift

23 January 2016 — 4-minute read

A Pretty-Printer for SQL

16 January 2016 — 2-minute read

Way Back

The Buckblog Archives

Dating to 2004 — Hundreds more articles