diff --git a/2020/ferguson1/.entry.json b/2020/ferguson1/.entry.json index 5180a1445..a6d84a236 100644 --- a/2020/ferguson1/.entry.json +++ b/2020/ferguson1/.entry.json @@ -105,14 +105,6 @@ "display_via_github" : false, "entry_text" : "explains various odd screen dumps" }, - { - "file_path" : "deobfuscation.html", - "inventory_order" : 100, - "OK_to_edit" : false, - "display_as" : "html", - "display_via_github" : false, - "entry_text" : "Deobfuscation information about the code" - }, { "file_path" : "gameplay.html", "inventory_order" : 100, @@ -121,6 +113,14 @@ "display_via_github" : false, "entry_text" : "many different gameplay modes described" }, + { + "file_path" : "obfuscation.html", + "inventory_order" : 100, + "OK_to_edit" : false, + "display_as" : "html", + "display_via_github" : false, + "entry_text" : "detailed information about the obfuscation of the code" + }, { "file_path" : "terminals.html", "inventory_order" : 100, @@ -273,14 +273,6 @@ "display_via_github" : true, "entry_text" : "markdown source for crazy.log.html" }, - { - "file_path" : "deobfuscation.md", - "inventory_order" : 4000000000, - "OK_to_edit" : true, - "display_as" : "markdown", - "display_via_github" : true, - "entry_text" : "markdown source for deobfuscation.html" - }, { "file_path" : "gameplay.md", "inventory_order" : 4000000000, @@ -297,6 +289,14 @@ "display_via_github" : false, "entry_text" : "image of Double-layered Chocolate Fudge Cake with 'IOCCC'" }, + { + "file_path" : "obfuscation.md", + "inventory_order" : 4000000000, + "OK_to_edit" : true, + "display_as" : "markdown", + "display_via_github" : true, + "entry_text" : "markdown source for obfuscation.html" + }, { "file_path" : "terminals.md", "inventory_order" : 4000000000, diff --git a/2020/ferguson1/README.md b/2020/ferguson1/README.md index 31dedb272..6e725f07b 100644 --- a/2020/ferguson1/README.md +++ b/2020/ferguson1/README.md @@ -137,7 +137,7 @@ Bugs and things that might seem like bugs but are not. Because most of us could use some *Double-layered Chocolate Fudge Cake*! -* [deobfuscation.html](deobfuscation.html) +* [obfuscation.html](obfuscation.html) Read ***ONLY*** if you really must give up trying to de-obfuscate! @@ -201,7 +201,7 @@ The [terminals.html](terminals.html) has a variety of information specific to terminals from input/directions, dimensions, sanity and colours: a sort of troubleshooting guide for terminals with some additional information. -The [deobfuscation.html](deobfuscation.html) has a variety of information +The [obfuscation.html](obfuscation.html) has a variety of information including some of the obfuscation techniques and a bit of how it works. The [bugs.html](bugs.html) has a list of known bugs and things that @@ -594,7 +594,7 @@ email but I'm more likely to respond to mastodon messages. [troubleshooting.html]: troubleshooting.html [human snakes]: http://www.macroevolution.net/snake-human-hybrids.html [chocolate-cake.html]: chocolate-cake.html -[deobfuscation.html]: deobfuscation.html +[obfuscation.html]: obfuscation.html [Surround]: https://en.wikipedia.org/wiki/Surround_(video_game) [Snake walk: The physics of slithering]: https://www.bbc.co.uk/news/science-environment-35563941 [snake-colours.sh]: snake-colours.sh diff --git a/2020/ferguson1/bugs.md b/2020/ferguson1/bugs.md index 9e20b72ee..ead27ef5e 100644 --- a/2020/ferguson1/bugs.md +++ b/2020/ferguson1/bugs.md @@ -294,7 +294,7 @@ a bug and I prefer putting in restrictions to try and make it very unlikely. [gameplay.html]: gameplay.html [cannibalism.log.html]: cannibalism.log.html [https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms]: https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms -[deobfuscation.html]: deobfuscation.html +[obfuscation.html]: obfuscation.html
diff --git a/2020/ferguson1/gameplay.html b/2020/ferguson1/gameplay.html index 45dd9e30a..11e958dcb 100644 --- a/2020/ferguson1/gameplay.html +++ b/2020/ferguson1/gameplay.html @@ -802,7 +802,7 @@ to be a problem simply do:

could also set the max size to be the highest possible by saying

    MAXSIZE=-1

Which I’ve done in the play.sh script.

-

I discuss how this mode works in deobfuscation.html.

+

I discuss how this mode works in obfuscation.html.

Here’s an example run where I spelt ‘SNAKE’. As you can see it’s far from perfect: the snake after all does not leave gaps and the game does not support diagonal movement and I also made a mistake and had to modify what I was aiming diff --git a/2020/ferguson1/gameplay.md b/2020/ferguson1/gameplay.md index ff1e76864..9912b5206 100644 --- a/2020/ferguson1/gameplay.md +++ b/2020/ferguson1/gameplay.md @@ -554,7 +554,7 @@ could also set the max size to be the highest possible by saying Which I've done in the [play.sh][] script. -I discuss how this mode works in [deobfuscation.html][]. +I discuss how this mode works in [obfuscation.html][]. Here's an example run where I spelt 'SNAKE'. As you can see it's far from perfect: the snake after all does not leave gaps and the game does not support @@ -913,7 +913,7 @@ years ago but I know it's true now. **Believe in yourself. Always.** [terminals.html]: terminals.html [troubleshooting.html]: troubleshooting.html [bugs.html]: bugs.html -[deobfuscation.html]: deobfuscation.html +[obfuscation.html]: obfuscation.html [snake-colours.sh]: %%REPO_URL%%/2020/ferguson1/snake-colours.sh [number of hertz (flashes) per second triggering seizures]: https://www.epilepsysociety.org.uk/photosensitive-epilepsy#.Xjgpwi2ZOgQ [termcaps.c]: %%REPO_URL%%/2020/ferguson1/termcaps.c diff --git a/2020/ferguson1/index.html b/2020/ferguson1/index.html index 06b0cfa06..b7ddd8a2c 100644 --- a/2020/ferguson1/index.html +++ b/2020/ferguson1/index.html @@ -507,7 +507,7 @@ This game has a number of configurable pitfalls including walls and snakes.

Because most of us could use some Double-layered Chocolate Fudge Cake!

Read ONLY if you really must give up trying to de-obfuscate!

Author’s remarks:

@@ -559,7 +559,7 @@ first glance but are not) that I have thought of or encountered.

The terminals.html has a variety of information specific to terminals from input/directions, dimensions, sanity and colours: a sort of troubleshooting guide for terminals with some additional information.

-

The deobfuscation.html has a variety of information +

The obfuscation.html has a variety of information including some of the obfuscation techniques and a bit of how it works.

The bugs.html has a list of known bugs and things that look like bugs but aren’t as well as documenting a built-in test unit for some @@ -912,8 +912,8 @@ email but I’m more likely to respond to mastodon messages.

  • cannibalism.log.html - shows extreme cannibalism mode output
  • chocolate-cake.html - Double-layered Chocolate Fudge Cake Recipe
  • crazy.log.html - explains various odd screen dumps
  • -
  • deobfuscation.html - Deobfuscation information about the code
  • gameplay.html - many different gameplay modes described
  • +
  • obfuscation.html - Obfuscation information about the code
  • terminals.html - terminal capabilities and dimensions and colours
  • troubleshooting.html - troubleshooting Snake
  • prog.2.c - source code with more digraphs
  • @@ -933,11 +933,11 @@ email but I’m more likely to respond to mastodon messages.

  • cannibalism.log.md - markdown source for cannibalism.log.html
  • chocolate-cake.md - markdown source for chocolate-cake.html
  • crazy.log.md - markdown source for crazy.log.html
  • -
  • deobfuscation.md - markdown source for deobfuscation.html
  • .entry.json - entry summary and manifest in JSON
  • gameplay.md - markdown source for gameplay.html
  • .gitignore - list of files that should not be committed under git
  • ioccc-cake.jpg - image of Double-layered Chocolate Fudge Cake with ‘IOCCC’
  • +
  • obfuscation.md - markdown source for obfuscation.html
  • .path - directory path from top level directory
  • terminals.md - markdown source for terminals.html
  • troubleshooting.md - markdown source for troubleshooting.html
  • diff --git a/2020/ferguson1/deobfuscation.html b/2020/ferguson1/obfuscation.html similarity index 98% rename from 2020/ferguson1/deobfuscation.html rename to 2020/ferguson1/obfuscation.html index 95915c88a..eac1dff8b 100644 --- a/2020/ferguson1/deobfuscation.html +++ b/2020/ferguson1/obfuscation.html @@ -12,8 +12,8 @@ The International Obfuscated C Code Contest - - + + @@ -26,13 +26,13 @@ - + - - - + + + @@ -363,7 +363,7 @@ height=110>

    The International Obfuscated C Code Contest

    -

    deobfuscation.html for 2020/ferguson1

    +

    obfuscation.html for 2020/ferguson1

    @@ -371,7 +371,7 @@ @@ -382,7 +382,7 @@ - +

    Introduction and Deobfuscation

    In the gameplay.html file I have given enough information to know how the game looks, how to move the snake, how to pause etc. @@ -405,7 +405,7 @@ already knew that so no harm there, hey?

  • Collision detection when resizing the window of the game
  • Obfuscation
  • -
  • Skinning the snake (i.e., decreasing the iocccsize)
  • +
  • Skinning the snake (i.e. decreasing the iocccsize)
  • A few more interesting size optimisations
  • @@ -933,7 +933,7 @@ then what is V anyway? It’s U + 1; and U -

    Obfuscation in prog.3.c and prog.3-j.c

    +

    Obfuscation in prog.3.c and prog.3-j.c

    There are a few differences in this version that are worth noting. First of all is a define that’s in the compiler invocation Makefile is in the source file itself. Second are the following obfuscation techniques. To simplify integrating @@ -1069,7 +1069,7 @@ done elsewhere? I had:

        attroff(m(PAIR(L)));
         h && attron(m(PAIR(L)));

    That saved two bytes.

    -

    Second let’s look at the B() function: there were two things I thought of that +

    Next let’s look at the B() function: there were two things I thought of that would save some bytes (I no longer know how many but a few at least possibly six or even more). I had the following code:

        if (V && U && o) { S(N); b(1); }
    @@ -1132,7 +1132,7 @@ matter having a ‘o’ at 0,0 isn’t either).

    https://creativecommons.org/licenses/by-sa/4.0/ --> - + @@ -1192,7 +1192,7 @@ matter having a ‘o’ at 0,0 isn’t either).

    Coda

    - Nu HTML check this web page
    + Nu HTML check this web page
    Jump to top Jump to Content

    diff --git a/2020/ferguson1/deobfuscation.md b/2020/ferguson1/obfuscation.md similarity index 99% rename from 2020/ferguson1/deobfuscation.md rename to 2020/ferguson1/obfuscation.md index 62377e093..6d2bbd62f 100644 --- a/2020/ferguson1/deobfuscation.md +++ b/2020/ferguson1/obfuscation.md @@ -20,7 +20,7 @@ already knew that so no harm there, hey? * [Cannibal collision detection](#cannibalcollision) * [Collision detection when resizing the window of the game](#resizing) - [Obfuscation](#obfuscation) -- [Skinning the snake (i.e., decreasing the iocccsize)](#skinning) +- [Skinning the snake (i.e. decreasing the iocccsize)](#skinning) - [A few more interesting size optimisations](#size) @@ -711,7 +711,7 @@ referring to another property: bitwise AND. For example consider the following: in this part alone (not to mention other places)! -# Obfuscation in prog.3.c and prog.3-j.c +# Obfuscation in [prog.3.c](%%REPO_URL%%/2020/ferguson1/prog.3.c) and [prog.3-j.c](%%REPO_URL%%/2020/ferguson1/prog.3-j.c) There are a few differences in this version that are worth noting. First of all is a define that's in the compiler invocation Makefile is in the source file @@ -891,7 +891,7 @@ But I then saved an extra byte by making it: That saved two bytes. -Second let's look at the `B()` function: there were two things I thought of that +Next let's look at the `B()` function: there were two things I thought of that would save some bytes (I no longer know how many but a few at least possibly six or even more). I had the following code: diff --git a/tmp/manifest.csv b/tmp/manifest.csv index e1288116d..559a825e2 100644 --- a/tmp/manifest.csv +++ b/tmp/manifest.csv @@ -4140,8 +4140,8 @@ 2020,ferguson1,cannibalism.log.html,100,false,html,false,shows extreme cannibalism mode output 2020,ferguson1,chocolate-cake.html,100,false,html,false,Double-layered Chocolate Fudge Cake Recipe 2020,ferguson1,crazy.log.html,100,false,html,false,explains various odd screen dumps -2020,ferguson1,deobfuscation.html,100,false,html,false,Deobfuscation information about the code 2020,ferguson1,gameplay.html,100,false,html,false,many different gameplay modes described +2020,ferguson1,obfuscation.html,100,false,html,false,detailed information about the obfuscation of the code 2020,ferguson1,terminals.html,100,false,html,false,terminal capabilities and dimensions and colours 2020,ferguson1,troubleshooting.html,100,false,html,false,troubleshooting Snake 2020,ferguson1,prog.2.c,150,true,c,true,source code with more digraphs @@ -4158,11 +4158,11 @@ 2020,ferguson1,cannibalism.log.md,4000000000,true,markdown,true,markdown source for cannibalism.log.html 2020,ferguson1,chocolate-cake.md,4000000000,true,markdown,true,markdown source for chocolate-cake.html 2020,ferguson1,crazy.log.md,4000000000,true,markdown,true,markdown source for crazy.log.html -2020,ferguson1,deobfuscation.md,4000000000,true,markdown,true,markdown source for deobfuscation.html 2020,ferguson1,.entry.json,4000000000,true,json,true,entry summary and manifest in JSON 2020,ferguson1,gameplay.md,4000000000,true,markdown,true,markdown source for gameplay.html 2020,ferguson1,.gitignore,4000000000,true,gitignore,true,list of files that should not be committed under git 2020,ferguson1,ioccc-cake.jpg,4000000000,true,image,false,image of Double-layered Chocolate Fudge Cake with 'IOCCC' +2020,ferguson1,obfuscation.md,4000000000,true,markdown,true,markdown source for obfuscation.html 2020,ferguson1,.path,4000000000,false,path,true,directory path from top level directory 2020,ferguson1,terminals.md,4000000000,true,markdown,true,markdown source for terminals.html 2020,ferguson1,troubleshooting.md,4000000000,true,markdown,true,markdown source for troubleshooting.html diff --git a/tmp/manifest.numbers b/tmp/manifest.numbers index da0496a52..6ee52d8c3 100644 Binary files a/tmp/manifest.numbers and b/tmp/manifest.numbers differ diff --git a/tmp/path_list.built.txt b/tmp/path_list.built.txt index d235f2cd8..da9176958 100644 --- a/tmp/path_list.built.txt +++ b/tmp/path_list.built.txt @@ -1196,9 +1196,9 @@ 2020/ferguson1/cannibalism.log.html 2020/ferguson1/chocolate-cake.html 2020/ferguson1/crazy.log.html -2020/ferguson1/deobfuscation.html 2020/ferguson1/gameplay.html 2020/ferguson1/index.html +2020/ferguson1/obfuscation.html 2020/ferguson1/prog.orig.c 2020/ferguson1/terminals.html 2020/ferguson1/troubleshooting.html diff --git a/tmp/path_list.found.txt b/tmp/path_list.found.txt index f70e14898..3a8da9889 100644 --- a/tmp/path_list.found.txt +++ b/tmp/path_list.found.txt @@ -4146,12 +4146,12 @@ 2020/ferguson1/chocolate-cake.md 2020/ferguson1/crazy.log.html 2020/ferguson1/crazy.log.md -2020/ferguson1/deobfuscation.html -2020/ferguson1/deobfuscation.md 2020/ferguson1/gameplay.html 2020/ferguson1/gameplay.md 2020/ferguson1/index.html 2020/ferguson1/ioccc-cake.jpg +2020/ferguson1/obfuscation.html +2020/ferguson1/obfuscation.md 2020/ferguson1/play.sh 2020/ferguson1/prog.2.c 2020/ferguson1/prog.3-j.c diff --git a/tmp/path_list.manifest.txt b/tmp/path_list.manifest.txt index f70e14898..3a8da9889 100644 --- a/tmp/path_list.manifest.txt +++ b/tmp/path_list.manifest.txt @@ -4146,12 +4146,12 @@ 2020/ferguson1/chocolate-cake.md 2020/ferguson1/crazy.log.html 2020/ferguson1/crazy.log.md -2020/ferguson1/deobfuscation.html -2020/ferguson1/deobfuscation.md 2020/ferguson1/gameplay.html 2020/ferguson1/gameplay.md 2020/ferguson1/index.html 2020/ferguson1/ioccc-cake.jpg +2020/ferguson1/obfuscation.html +2020/ferguson1/obfuscation.md 2020/ferguson1/play.sh 2020/ferguson1/prog.2.c 2020/ferguson1/prog.3-j.c diff --git a/tmp/path_list.required.txt b/tmp/path_list.required.txt index d2071a9ab..8e5e6dac5 100644 --- a/tmp/path_list.required.txt +++ b/tmp/path_list.required.txt @@ -2948,9 +2948,9 @@ 2020/ferguson1/cannibalism.log.md 2020/ferguson1/chocolate-cake.md 2020/ferguson1/crazy.log.md -2020/ferguson1/deobfuscation.md 2020/ferguson1/gameplay.md 2020/ferguson1/ioccc-cake.jpg +2020/ferguson1/obfuscation.md 2020/ferguson1/play.sh 2020/ferguson1/prog.2.c 2020/ferguson1/prog.3-j.c