Hacker News new | ask | show | jobs
by yourfate 2657 days ago
Very cool.

To try and understand it I reformated it to make it somewhat readable:

https://gitlab.com/snippets/1832264

3 comments

Hopefully without sounding like I am trying to boast or anything... I find the difference in readability and clarity dramatic between those two on one hand and my own deobfuscated, refactored and commented version of the OP. https://gist.github.com/ctsrc/fef3006e1d728bb7271cff0656eb02...
regarding your comment:

>// Probably plus means a locked door, and single quote means unlocked, or the other way around.

http://angband.oook.cz/stuff/manual.txt gives

' An open /broken door

+ A closed door

$ Gold or gems

A Angelic being

~ Light sources, Tools, Chests, Junk, Sticks, Skeletons, etc

Nice, thanks. I've updated the comments with the information you provided here :)
Been spending the past hour deobfuscating it a bit.

https://gist.github.com/ctsrc/fef3006e1d728bb7271cff0656eb02...

Meanwhile others have posted fully deobfuscated versions that the original author and someone else has published in the past. Oh well :P

Either way, deobfuscating this is fun so I'll keep going.

The link above goes to the first revision.

Here is a link to the most recent revision at all times:

https://gist.github.com/ctsrc/fef3006e1d728bb7271cff0656eb02...

Pretty much done deobfuscating, refactoring and commenting the code now.

I think at this point most of it is pretty understandable.

https://gist.github.com/ctsrc/fef3006e1d728bb7271cff0656eb02...

I worked a little bit more on it, and thanks to my refactoring I have identified a bug in the original code (which I have intentionally retained in my own code because the point is to produce the same output as the original version, all the way down to and including bug-for-bug compatibility).

Description of bug, which I also posted as a comment on the OP gist:

> Player and other entities will never be placed on the rightmost column of the room floor, nor on the bottom-most row of the room floor. See https://gist.github.com/ctsrc/fef3006e1d728bb7271cff0656eb02... [...]. In my refactored version of your code the bug is explained at the line I linked to in this comment.

https://gist.github.com/munificent/b1bcd969063da3e6c298be070...

Thanks... But someone was there first, with expanded macros.

https://gist.github.com/femto113/28f69626acddc70a002ecead0b3...