Select Featured Exercises for December Diversions

Next month (December), will have a relatively unstructured theme, where we feature five languages that didn’t feature in previous months:

  • ColdFusion
  • Groovy
  • Lua
  • Vimscript
  • Wren

The current list of implemented exercises looks as follows:

exercise cfml groovy lua vimscript wren
flatten-array :white_check_mark: :white_check_mark: :white_check_mark: :x: :white_check_mark:
resistor-color-duo :x: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
bank-account :x: :white_check_mark: :white_check_mark: :x: :white_check_mark:
beer-song :x: :x: :white_check_mark: :white_check_mark: :white_check_mark:
diamond :white_check_mark: :x: :white_check_mark: :x: :white_check_mark:
isbn-verifier :x: :white_check_mark: :white_check_mark: :x: :white_check_mark:
nth-prime :white_check_mark: :white_check_mark: :white_check_mark: :x: :x:
pig-latin :white_check_mark: :x: :white_check_mark: :x: :white_check_mark:
resistor-color-trio :x: :white_check_mark: :white_check_mark: :x: :white_check_mark:
run-length-encoding :x: :white_check_mark: :white_check_mark: :x: :white_check_mark:
accumulate :x: :white_check_mark: :x: :x: :white_check_mark:
all-your-base :x: :white_check_mark: :white_check_mark: :x: :x:
binary :x: :x: :white_check_mark: :x: :white_check_mark:
change :x: :x: :white_check_mark: :x: :white_check_mark:
custom-set :x: :x: :white_check_mark: :x: :white_check_mark:
grade-school :x: :x: :white_check_mark: :x: :white_check_mark:
list-ops :x: :x: :white_check_mark: :x: :white_check_mark:
minesweeper :x: :x: :white_check_mark: :x: :white_check_mark:
perfect-numbers :x: :white_check_mark: :white_check_mark: :x: :x:
prime-factors :x: :white_check_mark: :white_check_mark: :x: :x:
queen-attack :x: :x: :white_check_mark: :x: :white_check_mark:
rational-numbers :x: :x: :white_check_mark: :x: :white_check_mark:
rectangles :x: :x: :white_check_mark: :x: :white_check_mark:
strain :x: :white_check_mark: :white_check_mark: :x: :x:
affine-cipher :x: :x: :x: :x: :white_check_mark:
alphametics :x: :x: :white_check_mark: :x: :x:
bowling :x: :x: :white_check_mark: :x: :x:
complex-numbers :x: :x: :x: :x: :white_check_mark:
crypto-square :x: :x: :white_check_mark: :x: :x:
dnd-character :x: :x: :x: :x: :white_check_mark:
food-chain :x: :x: :white_check_mark: :x: :x:
forth :x: :x: :x: :x: :white_check_mark:
grep :x: :x: :x: :x: :white_check_mark:
house :x: :x: :white_check_mark: :x: :x:
kindergarten-garden :x: :x: :white_check_mark: :x: :x:
markdown :white_check_mark: :x: :x: :x: :x:
meetup :x: :x: :white_check_mark: :x: :x:
ocr-numbers :x: :x: :white_check_mark: :x: :x:
octal :x: :x: :white_check_mark: :x: :x:
pascals-triangle :x: :x: :white_check_mark: :x: :x:
pov :x: :x: :white_check_mark: :x: :x:
proverb :x: :white_check_mark: :x: :x: :x:
pythagorean-triplet :x: :x: :white_check_mark: :x: :x:
rail-fence-cipher :x: :x: :white_check_mark: :x: :x:
react :x: :x: :white_check_mark: :x: :x:
say :x: :x: :white_check_mark: :x: :x:
spiral-matrix :x: :x: :x: :x: :white_check_mark:
square-root :x: :x: :x: :x: :white_check_mark:
sublist :x: :x: :white_check_mark: :x: :x:
tournament :x: :x: :white_check_mark: :x: :x:
transpose :x: :x: :white_check_mark: :x: :x:
twelve-days :x: :x: :x: :x: :white_check_mark:
two-bucket :x: :x: :x: :x: :white_check_mark:
variable-length-quantity :x: :x: :white_check_mark: :x: :x:
word-search :x: :x: :white_check_mark: :x: :x:
wordy :x: :x: :x: :x: :white_check_mark:

Doing a quick pass, I quite like these exercises:

  • flatten-array
  • run-length-encoding
  • meetup (one of our only date-related exercises)
  • kindergarten-garden
  • grade-school

And it also quite like:

  • perfect-numbers
  • dnd-character
  • food-chain


For this selection of exercises, here’s the currently configured difficulty where they’ve been implemented:

exercise cfml groovy lua vimscript wren
flatten-array 1 5 5 . 3
run-length-encoding . 5 5 . 4
meetup . . . . .
kindergarten-garden . . 5 . .
grade-school . . 4 . 5
perfect-numbers . 3 3 . .
dnd-character . . . . 2
food-chain . . 3 . .

We’re in kind of the mid-tier of difficulty with this selection. Some of the perhaps easier exercises that are still unclaimed for 12in23: all-your-base (and it’s predecessors binary/trinary/octal/hexadecimal); queen-attack; strain; the resistor-color trilogy.

I’ll certainly jump in where needed. @colinleach has already put his name forward for CFML

Does vimscript have any active maintainers?

@kotp maintains Vim script. I’m in the middle of porting a few exercises there so I can probably pivot to the ones we need.

For CFML, every exercise except markdown is configured as difficulty 1. My guess is that the algorithm was “I’ll think about it later”, and later never arrived.

I already had all-your-base and queen-attack on my list of things to add to CF, regardless of 12in23. Not sure about resistor-color, which featured in Nibbly November (doing it in MIPS left a few mental scars, in my case).

1 Like

Ah, right. I missed that it already happened in the future ;)

“For a given value of November…”

Here would be my picks.

exercise cfml groovy lua vimscript wren
all-your-base :x: :white_check_mark: :white_check_mark: :x: :x:
dnd-character :x: :x: :x: :x: :white_check_mark:
flatten-array :white_check_mark: :white_check_mark: :white_check_mark: :x: :white_check_mark:
queen-attack :x: :x: :white_check_mark: :x: :white_check_mark:
run-length-encoding :x: :white_check_mark: :white_check_mark: :x: :white_check_mark:

Since Colin already wanted to do all-your-base and queen-attack, CFML just needs to pick up two exercises. dnd-character should hopefully be an easy exercise to port for the four tracks.

This puts the most load on Vim script, but I’m a little light right now since Adrien has been helping port Racket exercises the last few days for Hacktoberfest.

These seem like nice options. @glennj what do you think of these?

I like 'em

Okay, I’ll get to work on dnd-character, flatten-array, and run-length encoding next week.

1 Like

Okay, let’s finalize on:

exercise cfml groovy lua vimscript wren
all-your-base :x: :white_check_mark: :white_check_mark: :x: :white_check_mark:
dnd-character :x: :x: :x: :x: :white_check_mark:
flatten-array :white_check_mark: :white_check_mark: :white_check_mark: :x: :white_check_mark:
queen-attack :x: :white_check_mark: :white_check_mark: :x: :white_check_mark:
run-length-encoding :x: :white_check_mark: :white_check_mark: :x: :white_check_mark:

For Vim script, PRs have been opened for flatten-array and queen-attack, and Victor is working on a draft PR for run-length-encoding. I’ll have the last two done in about a week.

1 Like

Claiming dnd-character for groovy if no one else has it.

1 Like

@keiraville I see you’ve been contributing to Lua recently. Do you feel like doing D&D Character to fill in the gap for December?

Sure, I’ll take Lua D&D Character.

1 Like

All the CFML exercises are now submitted. Erik already merged queen-attack and run-length-encoding. I just PR’d the remaining two:


Current status:

exercise cfml groovy lua vimscript wren
all-your-base :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
flatten-array :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
queen-attack :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
dnd-character :white_check_mark: :white_check_mark: :white_check_mark: :x: :white_check_mark:
run-length-encoding :white_check_mark: :white_check_mark: :white_check_mark: :x: :white_check_mark:
1 Like

For Vim script, dnd-character is going through code review, and I should have a final draft for Victor this weekend. He’s still working on run-length-encoding.

1 Like

For Vim script, dnd-character is done. We’re still working on run-length-encoding.