Everything

MUMS Puzzle Hunt 2013

Informatix [MUMS Puzzle Hunt 2013]

So, I somehow managed to get 25 points all by myself in MUMS Puzzle Hunt 2013. Well, I pestered chaotic_iak a little with 3.3 Diagnosus (.html with animated .gif) but we still didn’t recognize all the Pokémon until hint 3, at which point Google sufficed for me.

This is nowhere near the top, but compared to the usual results of whatever AoPS team I form, it’s amazing. By far the best result of AoPS was on CiSRA in 2010 (46th with 58 points), before I discovered puzzle hunts in AoPS; unfortunately due to people getting older and the influx of younger and younger people to the fora, there are less possible teammates each year and they have less time, so here I am by myself. (Also I could have accepted an invitation from a guy in the some-form-of-Elephant team, but I figure if you can win two MUMS hunts in a row you don’t need any more people.)

All in all: Yay!

Puzzle 41 / Slitherlink [Clones]

I survived midterms.

This is a Slitherlink mutant. Draw a loop through adjacent vertices that cannot intersect itself. Each number indicates how many of the four edges around it are drawn. In addition, each pair of colored squares in corresponding positions (e.g. R1C1 and R6C6, R2C8 and R7C3) must have an equal number of edges drawn around them (i.e. if there were numbers placed there, they would be equal).

Φllotaxy

This is beautiful. Why do they have to make it sound all mysterious and difficult? That’s (the reciprocal of) the golden ratio, by the way.

[Textbook]

Transcript since the resolution is far from awesome: “Most angiosperms have alternate phyllotaxy, with leaves arranged in an ascending spiral around the stem, each successive leaf emerging 137.5° from the site of the previous one. Why 137.5°? Mathematical analyses suggest that this angle minimizes shading of the lower leaves by those above.”

Puzzle 40 / Fillomino [Samurai]

Yeah, and there’s this. chaotic_iak rejected this variant for his February sequence in order to get consistent 7x7 dimensions, so I made one. It’s been about a month. I have no idea why I procrastinated posting it until now.

This is a Samurai Fillomino, which means each grid satisfies the constraints on its own. Write a number in every empty cell so that, in each square grid, every group of cells with the same number that is connected through its edges has that number of cells. Note that the two grids must contain the same numbers where they overlap, but the grouping should be considered independently. I’d explain this really carefully if it weren’t the main gimmick of this puzzle.

Puzzle 39 / Contact + Slitherlink [Antisymmetric]

Yay crazy hybrids! I guess this one is kind of hard.

Draw a loop through adjacent vertices that cannot intersect itself. For each pair of symmetrically placed numbers, one is a Slitherlink clue which indicates how many of the four edges around it are drawn, and one is a Contact clue which indicates the total length of all straight segments adjacent to it where segment length is always measured up to the nearest turns in the loop.

Please click on the image if it looks weird, which it very likely will.

(This was a WordPress bug that should no longer be relevant.)

Adventures in Scala Pseudo-Abuse

So, what have I been doing with programming recently?

Scala is an amazing multiparadigm programming language that runs on the Java Virtual Machine and interoperates with Java. I learned about it last time reading random articles on Twitter.

When I say “amazing” I mean “This is a language in which my code gives me nerdgasms every time I read it.” Wheeee.

Okay, it’s not perfect. People say it’s too academic. It has a notoriously complicated type system (which is Turing-Complete at compile time). Its documentation is a bit patchy too. For a serious introduction, the Scala website has plenty of links under documentation, and a tour of features. Somebody wrote another tour that explains things a bit more. So here, instead of introducing it seriously, I’m just going to screw with its features.

Example of freedom. Scala lets names consist of symbols, and treats one-parameter methods and infix operators exactly the same. The full tokenization rules are a bit detailed and I put them at the bottom of this post for the interested. This lets you create classes with arithmetic and domain-specific languages easily, but it also creates some silly opportunities:

scala> val * = 12
*: Int = 12

scala> * * * * *
res0: Int = 1728

Now on GitHub!

Yay?

Right now I feel about this a lot like I felt about getting Twitter. Nobody I know personally is there, but all the “famous” “technological” people are, and something like 90% of the open-source projects I bump into are too.

Just like Twitter, I barely know how to use Git either, but that’s okay. For version control I’m going all command-line now! Last time I tried to link stuff up with Eclipse everything exploded, but after I ran git init from the terminal this time, it’s highlighting things red and green everywhere like it’s suddenly begging me not to forsake it for the command line. Nice try, Eclipse. You can’t even get your “presentation compiler” to stop crashing.