Merge pull request #175 from xexyl/oregon
This commit is contained in:
11 files changed
+281
-140
No files matched your search
@@ -6,7 +6,7 @@
|
||||
"dir" : "ferguson1",
|
||||
"entry_id" : "2024_ferguson1",
|
||||
"title" : "oregon",
|
||||
"abstract" : "Oregon trail pact with the devil",
|
||||
"abstract" : "A Pact With the Devil On the Oregon Trail",
|
||||
"author_set" : [
|
||||
{
|
||||
"author_handle" : "Cody_Boone_Ferguson"
|
||||
@@ -101,6 +101,14 @@
|
||||
"display_via_github" : true,
|
||||
"entry_text" : "hints on how to deobfuscate"
|
||||
},
|
||||
{
|
||||
"file_path" : "gotos.txt",
|
||||
"inventory_order" : 100,
|
||||
"OK_to_edit" : true,
|
||||
"display_as" : "text",
|
||||
"display_via_github" : true,
|
||||
"entry_text" : "text file showing all the line changes in a run"
|
||||
},
|
||||
{
|
||||
"file_path" : "lencount.c",
|
||||
"inventory_order" : 100,
|
||||
|
||||
+114
-66
@@ -53,58 +53,46 @@ inside this C code. :-)
|
||||
|
||||
## Author's remarks:
|
||||
|
||||
<div id="devil">
|
||||
### A Pact With the Devil On the Oregon Trail (...and his 134 regrets of goto)
|
||||
</div>
|
||||
|
||||
<hr style="width:10%;text-align:left;margin-left:0">
|
||||
|
||||
> Fun fact: after winning this, the author played the game in gdb from start to
|
||||
finish and not counting macros but counting all function calls (not libc
|
||||
functions, functions in prog.c), there were a total of **985** (!) line jumps.
|
||||
The prog.c, counting `#include`s, `#define`s, functions and some lines that have
|
||||
only braces, as well as 14 blank lines, has only 85 lines. A very tiny fraction
|
||||
of the time a line might be repeated in a row ONCE but that does not really matter.
|
||||
functions just the few functions in prog.c), there were a total of **985** (!)
|
||||
line jumps. The prog.c, counting `#include`s, `#define`s, functions and some
|
||||
lines that have only braces, as well as 14 blank lines, has only 85 lines. A
|
||||
very tiny fraction of the time a line might be repeated in a row ONCE but that
|
||||
does not really matter.
|
||||
|
||||
**NOTE**: I actually submitted two versions. This one is not encrypted. The
|
||||
encrypted one even encrypted emojis without having to decrypt them in order to
|
||||
print them (and everything else). I have kept references to encryption in this
|
||||
file even after publication. I do have a copy of it if anyone is interested.
|
||||
|
||||
<hr style="width:10%;text-align:left;margin-left:0">
|
||||
<div id="devil">
|
||||
### A Pact With the Devil On the Oregon Trail (...and his 134 regrets of goto)
|
||||
</div>
|
||||
|
||||
|
||||
The **Go To Hell In A Handcart Travel Company** PROUDLY welcomes all sinners to
|
||||
our GREATEST destination yet, with:
|
||||
The _Go To Hell In A Handcart Travel Company_ **PROUDLY** welcomes all sinners to
|
||||
our **GREATEST** destination yet, with:
|
||||
|
||||
<img src="devil.png"
|
||||
alt="A Pact With the Devil On the Oregon Trail - Devil driving wagon"
|
||||
width=640 height=640>
|
||||
width=1024 height=1024>
|
||||
|
||||
Here is our travel guide:
|
||||
Here is our very sincere travel guide:
|
||||
|
||||
<img src="travelguide.jpg"
|
||||
alt="Hell In A Handcart Travel Company Oregon Trail travel guide"
|
||||
width=640 height=720>
|
||||
width=1536 height=1684>
|
||||
|
||||
But before I help any sinners embark on this once in a lifetime journey, for
|
||||
those who might be disconcerted with the idea of the theme (even though it's
|
||||
ridiculous with something going back to 66m years ago, to several centuries ago
|
||||
all the way back to the 1950s, all the while taking place in the 1800s),
|
||||
**PLEASE** either read the (probably totally unnecessary)
|
||||
[disclaimer](#disclaimer) or skip this perilous journey entirely. Obviously the
|
||||
judges will have no choice in the matter :-) but it's not really for them anyway
|
||||
but rather in case this wins (which, of course, it did).
|
||||
But before I help any sinners embark on this once in a lifetime journey, some
|
||||
travellers might wish to look at the [commentary on the jokes](#jokes) (and
|
||||
possibly the [disclaimer](#disclaimer)) as well as the [humour](#humour)
|
||||
section, [historical references](#history) and [cultural references](#cultural)
|
||||
as well. The commentary is primarily for those who might be uncomfortable with
|
||||
the jokes that go with the theme. Probably totally unnecessary, especially given
|
||||
the [Best abuse of the user](https://www.ioccc.org/2000/briddlebane/index.html)
|
||||
IOCCC entry from 2000 that directly insults the player but just in case...
|
||||
|
||||
Everyone might or might not want to look at the [commentary on the
|
||||
jokes](#jokes) as well as the [humour](#humour) section, [historical
|
||||
references](#history) and [cultural references](#cultural) as well. The
|
||||
commentary is primarily for those who might be uncomfortable with the jokes that
|
||||
go with the theme. Probably totally unnecessary, especially given the [Best
|
||||
abuse of the user](https://www.ioccc.org/2000/briddlebane/index.html) IOCCC
|
||||
entry from 2000 that directly insults the player but just in case...
|
||||
|
||||
Now, back to the good stuff!
|
||||
Now, back to the good stuff (not that the jokes are not a good part of it)!
|
||||
|
||||
This program is an **ABSOLUTELY ABSURD PARODY** of the classic Oregon Trail,
|
||||
although it's actually something else entirely now, hence the name change (not
|
||||
@@ -161,7 +149,8 @@ seen any suggestion of them before, one because it's absolutely contrary to how
|
||||
it works in C, namely near 200 NUL terminated `char *`s in a single flat `char
|
||||
*` - no, not an array of `char *[]`).
|
||||
|
||||
See [obfuscation.html](obfuscation.html) and my [concluding remarks](#conclusion) for
|
||||
See [obfuscation.html](obfuscation.html) and my [concluding
|
||||
remarks](#conclusions) for
|
||||
more details on just how many `goto`s I have but beware of monsters. But be careful
|
||||
if you have a heart condition. And if you're a computer scientist make sure
|
||||
you're not at risk of stroke.
|
||||
@@ -280,15 +269,15 @@ before it happens is one thing but if it succeeds it's even more ludicrous (and
|
||||
funny - and also perhaps sardonic).
|
||||
|
||||
And if you do succeed you get some things too but not all of what you might
|
||||
expect! It might be called a kind of damaging (some might say 'damning') event but it
|
||||
fits the theme quite well and although it (and this is not the only case this
|
||||
happens in the game) might not be something most people care to think about (but
|
||||
see [Disclaimer](#disclaimer) and also [what the judges LIKE](#vomitory), yes
|
||||
cannibalism does in fact occur in the game, to be blunt (not that the judges
|
||||
like THAT but you'll see what I mean if you read that section: which is by no
|
||||
means necessary for most people!). Of course it's happened throughout history
|
||||
including on the trail so even if the judges did not like to throw up (and
|
||||
laugh, which I would guess they will also be doing), it still fits well.
|
||||
expect! It might be called a kind of damaging (some might say 'damning') event
|
||||
but it fits the theme quite well and although it (and this is not the only case
|
||||
this happens in the game) might not be something most people care to think about
|
||||
(but see [what the judges LIKE](#vomitory), yes cannibalism does in fact occur
|
||||
in the game, to be blunt (not that the judges like THAT but you'll see what I
|
||||
mean if you read that section: which is by no means necessary for most people!).
|
||||
Of course it's happened throughout history including on the trail so even if the
|
||||
judges did not like to throw up (and laugh, which I would guess they will also
|
||||
be doing), it still fits well.
|
||||
|
||||
There are actually far more ridiculous examples of this, things that make no
|
||||
sense, like most of the game. But that's what makes it so much fun. There are
|
||||
@@ -358,8 +347,8 @@ are even better here](#emojis).
|
||||
The jokes that have what some people might question actually have multiple
|
||||
interpretations and if one goes to what they find 'questionable' that's actually
|
||||
on their end and very possibly (in many cases this is almost certainly the case)
|
||||
not even my original idea. But that's discussed in the [disclaimer](#disclaimer)
|
||||
and the [commentary on the jokes](#jokes).
|
||||
not even my original idea. But that's discussed in the [commentary on the
|
||||
jokes](#jokes).
|
||||
|
||||
For those who are curious enough but do not want to try and figure it out: I do
|
||||
offer a section of some of the [differences](#differences) from the May
|
||||
@@ -432,7 +421,8 @@ and easily amused.
|
||||
### Disclaimer
|
||||
</div>
|
||||
|
||||
**PUBLIC HEALTH ADVISORY**: as everyone will have noticed I write a lot. So IF
|
||||
**PUBLIC HEALTH ADVISORY**: as everyone who already knows me, and as new people
|
||||
will have noticed already: I write a lot. So IF
|
||||
you believe that all I have written is circumlocution, and you have
|
||||
circumlocutophobia aka logoblabberophobia (fear of circumlocution - yes those
|
||||
are made up), and you also have hippopotomonstrosesquipedalobibliophobia (fear
|
||||
@@ -500,9 +490,11 @@ Anyway: if the idea of a pact with the devil (or in this case, the narrator! :-)
|
||||
:-) ) does offend you, and I suppose that's the real one for some people, I can
|
||||
offer only: it's nothing serious and all in good fun; there are a lot of jokes
|
||||
and in fact **the PLAYER CHARACTER (PC) is playfully MOCKED** by the narrator
|
||||
**EXACTLY FOR** this pact and their behaviour! As you'll notice the narrator
|
||||
also has a somewhat dubious character (which is also how it would go in real
|
||||
life, given what the narrator is) but also in vague and ambiguous ways.
|
||||
**EXACTLY FOR** this pact and their behaviour! Of course as the narrator is the
|
||||
devil that means the devil is mocking the PC for making a pact with the devil,
|
||||
which makes it even more ridiculous. As you'll notice the narrator also has a
|
||||
somewhat dubious character (which is also how it would go in real life, at least
|
||||
if it existed, given what the narrator is) but also in vague and ambiguous ways.
|
||||
|
||||
That is also discussed later in the humour subsection. As I note elsewhere I
|
||||
think, I have a personal problem with labelling people a sinner and I cannot
|
||||
@@ -1389,7 +1381,7 @@ the fact that original Oregon Trail (and my game is even worse) is a goto hell
|
||||
spaghetti code and my joke in the [obfuscation.html](obfuscation.html) file (not to
|
||||
mention the joke of using the obscene amount of `goto`s in a single small
|
||||
program (see the obfuscation file for more on that as well as [concluding
|
||||
remarks](#conclusion)).
|
||||
remarks](#conclusions)).
|
||||
|
||||
The message is full of irony for added effect, namely the 'WELCOME TO HELL!' and
|
||||
calling it your forever home, plus god wishing you a prosperous life ahead.
|
||||
@@ -3250,8 +3242,9 @@ ineffable.
|
||||
|
||||
Actually I wanted to see what it was like. It was VERY amusing - but only
|
||||
because I did not have to debug it. For the submission I included line changes
|
||||
for JUST the third prompt. It looked like:
|
||||
time (mere hours left) but to get to JUST the third prompt this is the lines it
|
||||
for JUST the third prompt. Yes, what would only take a few seconds of play. It
|
||||
looked like this (I only did the third prompt as I had mere hours left to
|
||||
finish):
|
||||
|
||||
```
|
||||
19 20 21 32 69 82 34 33 34 47 45 47 50 83 34 33 34 47 45 47 50 83 34 33 34
|
||||
@@ -3263,15 +3256,19 @@ I'm a dragon. I'm not a dragon. I have a secret for you: dragons don't exist.
|
||||
Except on the Oregon Trail.
|
||||
|
||||
I was right too: the entire game is worse, far far worse. After this won I did a
|
||||
full sequence. This is from start to finish and I include it for your amusement.
|
||||
Or horror. There are a few times where the line is the same but that only shows
|
||||
how very often the line changes. It is a total of 985 changes, counting
|
||||
function calls (i.e. each call to one of the few functions is a jump); calls to
|
||||
the macros are not counted.
|
||||
full sequence. This is from start to finish and I include it for your amusement
|
||||
(see [gotos.txt](gotos.txt)). Or horror. There are a few times where the line
|
||||
is the same but that only shows how very often the line changes. It is a total
|
||||
of **985** (!) changes, counting function calls (i.e. each call to one of the few
|
||||
functions is a jump); calls to the macros are not counted.
|
||||
|
||||
This is in a program that is JUST 85 lines! A program that has only 85 lines
|
||||
This is in a program that is **JUST 85 (!) lines**! A program that has only 85 lines
|
||||
COUNTING the `#include`s, `#define`s, other functions and 14 blank lines that
|
||||
jumps 985 times is astonishing.
|
||||
jumps 985 times is astonishing. Of course that's not the only technique but the
|
||||
title of the award and the judges' remarks are rather fitting as it is
|
||||
diabolical to follow this code (and the theme of the game fits as well); the
|
||||
[obfuscation.html](obfuscation.html) shows even more on this - and the other
|
||||
things I did as well.
|
||||
|
||||
> I have yet to see a single study that supported the supposition that GOTOs are
|
||||
harmful (I presume this is not because nobody has tried). Nonetheless, people
|
||||
@@ -3283,14 +3280,17 @@ Well after a bit more than 38 years I have finally provided exactly what Frank
|
||||
said was missing. And it was about time. Not that it didn't happen before. But
|
||||
he was wrong.
|
||||
|
||||
It is not about not trying. But even IF he was right, he
|
||||
sure is WRONG NOW. Anyone who thinks otherwise needs to try and debug
|
||||
It is not about not trying. But even IF he WAS right, he
|
||||
sure as hell is WRONG NOW. Anyone who thinks otherwise needs to try and debug
|
||||
my program - or maintain it. Or write it.
|
||||
|
||||
It would have been SO MUCH EASIER if I did not use 134 `goto`s. Actually, even a
|
||||
tiny portion of that would make it harder. Nobody, whether they're in their
|
||||
right mind or not, would WANT to maintain this, or something even close to it.
|
||||
Feel free to pass on judgement to me. I welcome it!
|
||||
Feel free to pass on judgement to me. I welcome it! You have to be mad and
|
||||
embrace it to do this. I went full out and if I didn't have to do other things
|
||||
(or felt like fewer events would be worth it) I would have done even more
|
||||
`goto`s for this very reason.
|
||||
|
||||
Even flex/bison code, which as far as I am aware uses FAR fewer `goto`s, is
|
||||
notorious for `goto`s and is quite hard to follow. It would be a nightmare to
|
||||
@@ -3300,7 +3300,7 @@ Okay, yes, I admit it: my abuse is extreme.
|
||||
|
||||
That doesn't matter. As I remind everyone later, Apple caused a security hole
|
||||
because of a SINGLE misplaced `goto`. Mine is 133 more than that - and it works.
|
||||
It shouldn't.
|
||||
It shouldn't. But of course it does.
|
||||
|
||||
> Then they turn around and say, 'See, the program with GOTOs is more complex.'
|
||||
In short, the belief that GOTOs are harmful appears to have become a religious
|
||||
@@ -3309,7 +3309,7 @@ doctrine, unassailable by evidence.
|
||||
Well, Frank, I hope you appreciate the evidence now.
|
||||
|
||||
I could go on but I don't want to criticise, as I said somewhere, and it's not
|
||||
really important. My point was that where 1987/hines IS INDEED a beautiful
|
||||
really important. My point was that whereas 1987/hines IS INDEED a beautiful
|
||||
counter-example of this letter, mine takes it much further. This program is not
|
||||
something anyone would want to maintain - presumably even Frank.
|
||||
|
||||
@@ -3326,7 +3326,8 @@ I would have used git bisect but it would have been a lot of time lost, if I had
|
||||
made even a few more commits. As it is it took a full two months and I BARELY
|
||||
finished this. In fact I finished it within hours of the contest closing! It was
|
||||
not even 12 hours before closing time. I barely made it. Part of that is I added
|
||||
even more `goto`s, despite the fact I had reached 2503 in size.
|
||||
even more `goto`s, despite the fact I had reached 2503 in size, with careful
|
||||
size optimisation.
|
||||
|
||||
Countless times I came up with ways to do more, at least where it was possible,
|
||||
such as freeing space so I could change some `break;`s to a `goto Z;` as `Z:`
|
||||
@@ -3336,6 +3337,22 @@ said, I could not really move any more code if I wanted to, even if I had more
|
||||
space free. Those very few places where the code could in theory be moved are
|
||||
already controlled by goto.
|
||||
|
||||
In fact I could have done more `goto`s in this version but I wanted to help the
|
||||
judges out in judging - that and it was easier to verify things are correct.
|
||||
`iocccsize` reports on prog.c 2457 and after I won this I kind of wish I did
|
||||
take it even further just to mess with everyone even more.
|
||||
|
||||
But as I said elsewhere basically everything is in the wrong place so what even
|
||||
would be the point in doing that? It would probably not make it harder to follow
|
||||
(well it would but still would there be a point in it?); it would just make it
|
||||
even more absurd: the amount of spaghetti code makes it nigh impossible to
|
||||
follow and I'm happy to have smashed the record of 24 by 110 `goto`s, even if I
|
||||
now wish I had gone even further.
|
||||
|
||||
Nonetheless the 134 is what won so that's what I'll live by (and I doubt it'll
|
||||
be broken as this kind of trick will, as the general remarks about the entries
|
||||
note, not be as worthy, even if `goto`s are alas, not banned outright).
|
||||
|
||||
Anyway, as I noted in [obfuscation.html](obfuscation.html), no initialisation is
|
||||
skipped in my jumps and that is what causes `goto` to invoke UB.
|
||||
|
||||
@@ -3595,6 +3612,37 @@ would be worse with The Chronicles of Narnia. Probably most stories you'll run
|
||||
into issues without some code modifications (have fun!!). But hopefully this
|
||||
helps you appreciate the careful design even more.
|
||||
|
||||
### Dedications and thanks
|
||||
|
||||
I dedicate this to all the poor souls who suffered in the [Salem Witchcraft
|
||||
Trials](https://en.wikipedia.org/wiki/Salem_witch_trials), the [Great Molasses
|
||||
Flood](https://en.wikipedia.org/wiki/Great_Molasses_Flood) as well as all those
|
||||
who died on the [Oregon Trail](https://en.wikipedia.org/wiki/Oregon_Trail).
|
||||
|
||||
Oh and those who were eaten by [Dragons](https://en.wikipedia.org/wiki/Dragon),
|
||||
attacked by [Werewolves](https://en.wikipedia.org/wiki/Werewolf) or bitten by a
|
||||
[Vampire](https://en.wikipedia.org/wiki/Vampire) (fun or not so fun fact: there
|
||||
is a disease that has some of the similarities to vampirism, so much so that
|
||||
it's known also as the vampire disease:
|
||||
[porphyria](https://medicover-genetics.com/porphyria-the-facts-behind-the-so-called-vampire-disease/).
|
||||
Plus [Blackbeard's](https://en.wikipedia.org/wiki/Blackbeard) victims. Oh and
|
||||
yes anyone attacked by the [Flying
|
||||
Spaghetti Monster](https://en.wikipedia.org/wiki/Flying_Spaghetti_Monster)
|
||||
or those who were tricked by the [BBC April Fool's prank of the
|
||||
Spaghetti
|
||||
tree](http://news.bbc.co.uk/onthisday/hi/dates/stories/april/1/newsid_2819000/2819261.stm)
|
||||
on the [Panorama programme](https://www.bbc.co.uk/programmes/b006t14n) in 1957.
|
||||
Bless you all (probably by the [devil on the Oregon
|
||||
Trail](https://www.ioccc.org/2024/ferguson1/index.html)).
|
||||
|
||||
On a more serious note I also dedicate this to my lovely Mum Dianne and
|
||||
my dear cousin Dani plus my great friend Martijn Schoemaker who gave me my first
|
||||
real opportunity (a MUD) to get great at C back in the early 2000s and who
|
||||
reminded me of the IOCCC so many years ago now.
|
||||
|
||||
Also thanks to my friends for putting up with my slow responses (and in some
|
||||
cases no response at all) as I was working on this.
|
||||
|
||||
|
||||
#### P.S. select remarks made to the IOCCC Judges
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
19 20 21 32 15 13 15 68 81 34 33 15 13 15 34 13 49 47 49 52 82 34 33 15 13
|
||||
15 34 13 49 47 49 52 82 34 33 15 13 15 34 13 49 47 49 52 82 34 33 15 13 15
|
||||
34 13 49 47 49 52 82 34 33 15 13 15 34 13 49 47 49 52 82 18 19 13 19 21 78
|
||||
27 54 29 55 52 55 52 55 52 55 52 55 52 30 13 30 78 63 82 15 13 15 13 53 56
|
||||
30 16 32 27 15 13 15 27 32 57 59 57 58 57 59 81 15 13 15 81 71 74 72 74 76
|
||||
27 54 29 55 52 55 52 55 52 55 52 55 52 30 13 30 78 63 82 15 13 15 13 52 57
|
||||
59 57 58 57 59 64 15 13 15 19 64 81 71 74 72 74 76 27 54 29 55 52 55 52 55
|
||||
52 55 52 55 52 30 13 30 15 13 15 13 52 57 59 57 58 57 59 64 15 13 15 19 64
|
||||
81 71 74 72 74 76 27 54 29 55 52 55 52 55 52 55 52 55 52 30 13 30 15 13 15
|
||||
13 68 81 34 33 15 13 15 34 13 36 39 41 39 39 41 39 41 39 41 39 41 39 41 39
|
||||
41 43 52 82 34 33 15 13 15 34 13 36 39 41 39 39 41 39 41 39 41 39 41 39 41
|
||||
39 41 43 52 82 34 33 15 13 15 34 13 36 39 41 39 39 41 39 41 39 41 39 41 39
|
||||
41 39 41 43 52 82 34 33 15 13 15 34 13 36 39 41 39 39 41 39 41 39 41 39 41
|
||||
39 41 39 41 43 52 82 34 33 15 13 15 34 13 36 39 41 39 39 41 39 41 39 41 39
|
||||
41 39 41 39 41 43 52 82 18 55 29 55 29 29 55 29 29 55 29 29 55 29 29 55 29
|
||||
19 13 19 57 59 57 58 57 59 81 71 74 72 74 76 27 54 29 55 52 55 52 55 52 55
|
||||
52 55 52 30 13 30 15 13 15 13 52 57 59 57 58 57 59 60 15 13 15 60 81 71 74
|
||||
72 74 76 27 54 29 55 52 55 52 55 52 55 52 55 52 30 13 30 15 13 15 13 52 57
|
||||
59 57 58 57 59 64 15 13 15 19 64 81 71 74 72 74 76 27 54 29 55 52 55 52 55
|
||||
52 55 52 55 52 30 13 30 78 63 82 15 13 15 13 52 57 59 57 58 57 59 64 15 13
|
||||
15 19 64 81 54 15 13 15 54 15 13 15 15 13 15 83 15 13 15 27 54 29 55 52 55
|
||||
52 55 52 55 52 55 52 30 13 30 78 63 82 15 13 15 13 52 57 59 57 58 57 59 64
|
||||
15 13 15 64 81 83 68 71 15 13 15 74 72 74 76 27 54 29 55 52 55 52 55 52 55
|
||||
52 55 52 30 13 30 78 63 82 15 13 15 13 52 57 59 57 58 57 59 64 15 13 15 64
|
||||
81 83 68 71 74 72 74 76 27 54 29 55 52 55 52 55 52 55 52 55 52 30 13 30 78
|
||||
63 82 15 13 15 13 52 57 59 57 58 57 59 61 15 13 15 61 81 83 68 71 15 13 15
|
||||
74 72 74 76 27 54 29 55 52 55 52 55 52 55 52 55 52 30 13 30 15 13 15 13 68
|
||||
81 34 33 15 13 15 34 13 36 39 41 39 39 41 39 41 39 41 39 41 39 41 39 41 43
|
||||
52 82 34 33 15 13 15 34 13 36 39 41 39 39 41 39 41 39 41 39 41 39 41 39 41
|
||||
43 52 82 34 33 15 13 15 34 13 36 39 41 39 39 41 39 41 39 41 39 41 39 41 39
|
||||
41 43 52 82 34 33 15 13 15 34 13 36 39 41 39 39 41 39 41 39 41 39 41 39 41
|
||||
39 41 43 52 82 34 33 15 13 15 34 13 36 39 41 39 39 41 39 41 39 41 39 41 39
|
||||
41 39 41 43 52 82 18 55 29 55 29 29 55 29 29 55 29 29 55 29 29 55 29 19 13
|
||||
19 57 59 57 58 57 59 81 15 13 15 81 83 68 71 74 72 74 76 27 54 29 55 52 55
|
||||
52 55 52 55 52 55 52 30 13 30 15 13 15 13 52 57 59 57 58 57 59 65 15 13 15
|
||||
65 81 83 68 71 74 72 74 76 27 54 29 55 52 55 52 55 52 55 52 55 52 30 13 30
|
||||
15 13 15 13 52 57 59 57 58 57 59 60 15 13 15 60 81 83 68 69 70 71 15 13 15
|
||||
74 72 74 76 27 54 29 55 52 55 52 55 52 55 52 55 52 30 13 30 15 13 15 13 52
|
||||
57 59 57 58 57 59 64 15 13 15 19 64 81 83 68 71 15 13 15 74 72 74 76 27 83
|
||||
26 21 15 13 15 15 13 15 24 85
|
||||
+108
-63
@@ -434,7 +434,7 @@
|
||||
</a>
|
||||
<h1>The International Obfuscated C Code Contest</h1>
|
||||
<h2>2024/ferguson1 - Prize in diabolical logistics</h2>
|
||||
<h3>Oregon trail pact with the devil</h3>
|
||||
<h3>A Pact With the Devil On the Oregon Trail</h3>
|
||||
</div>
|
||||
|
||||
<!-- END: this line ends content from: inc/header.default.html -->
|
||||
@@ -495,48 +495,40 @@ by <a href="https://en.wikipedia.org/wiki/The_Oregon_Trail_(series)">Oregon Trai
|
||||
how well prepared you are, you will have a devil of a time jumping around
|
||||
inside this C code. :-)</p>
|
||||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||||
<div id="devil">
|
||||
<h3 id="a-pact-with-the-devil-on-the-oregon-trail-and-his-134-regrets-of-goto">A Pact With the Devil On the Oregon Trail (…and his 134 regrets of goto)</h3>
|
||||
</div>
|
||||
<hr style="width:10%;text-align:left;margin-left:0">
|
||||
<blockquote>
|
||||
<p>Fun fact: after winning this, the author played the game in gdb from start to
|
||||
finish and not counting macros but counting all function calls (not libc
|
||||
functions, functions in prog.c), there were a total of <strong>985</strong> (!) line jumps.
|
||||
The prog.c, counting <code>#include</code>s, <code>#define</code>s, functions and some lines that have
|
||||
only braces, as well as 14 blank lines, has only 85 lines. A very tiny fraction
|
||||
of the time a line might be repeated in a row ONCE but that does not really matter.</p>
|
||||
functions just the few functions in prog.c), there were a total of <strong>985</strong> (!)
|
||||
line jumps. The prog.c, counting <code>#include</code>s, <code>#define</code>s, functions and some
|
||||
lines that have only braces, as well as 14 blank lines, has only 85 lines. A
|
||||
very tiny fraction of the time a line might be repeated in a row ONCE but that
|
||||
does not really matter.</p>
|
||||
</blockquote>
|
||||
<p><strong>NOTE</strong>: I actually submitted two versions. This one is not encrypted. The
|
||||
encrypted one even encrypted emojis without having to decrypt them in order to
|
||||
print them (and everything else). I have kept references to encryption in this
|
||||
file even after publication. I do have a copy of it if anyone is interested.</p>
|
||||
<hr style="width:10%;text-align:left;margin-left:0">
|
||||
<p>The <strong>Go To Hell In A Handcart Travel Company</strong> PROUDLY welcomes all sinners to
|
||||
our GREATEST destination yet, with:</p>
|
||||
<div id="devil">
|
||||
<h3 id="a-pact-with-the-devil-on-the-oregon-trail-and-his-134-regrets-of-goto">A Pact With the Devil On the Oregon Trail (…and his 134 regrets of goto)</h3>
|
||||
</div>
|
||||
<p>The <em>Go To Hell In A Handcart Travel Company</em> <strong>PROUDLY</strong> welcomes all sinners to
|
||||
our <strong>GREATEST</strong> destination yet, with:</p>
|
||||
<p><img src="devil.png"
|
||||
alt="A Pact With the Devil On the Oregon Trail - Devil driving wagon"
|
||||
width=640 height=640></p>
|
||||
<p>Here is our travel guide:</p>
|
||||
width=1024 height=1024></p>
|
||||
<p>Here is our very sincere travel guide:</p>
|
||||
<p><img src="travelguide.jpg"
|
||||
alt="Hell In A Handcart Travel Company Oregon Trail travel guide"
|
||||
width=640 height=720></p>
|
||||
<p>But before I help any sinners embark on this once in a lifetime journey, for
|
||||
those who might be disconcerted with the idea of the theme (even though it’s
|
||||
ridiculous with something going back to 66m years ago, to several centuries ago
|
||||
all the way back to the 1950s, all the while taking place in the 1800s),
|
||||
<strong>PLEASE</strong> either read the (probably totally unnecessary)
|
||||
<a href="#disclaimer">disclaimer</a> or skip this perilous journey entirely. Obviously the
|
||||
judges will have no choice in the matter :-) but it’s not really for them anyway
|
||||
but rather in case this wins (which, of course, it did).</p>
|
||||
<p>Everyone might or might not want to look at the <a href="#jokes">commentary on the
|
||||
jokes</a> as well as the <a href="#humour">humour</a> section, <a href="#history">historical
|
||||
references</a> and <a href="#cultural">cultural references</a> as well. The
|
||||
commentary is primarily for those who might be uncomfortable with the jokes that
|
||||
go with the theme. Probably totally unnecessary, especially given the <a href="https://www.ioccc.org/2000/briddlebane/index.html">Best
|
||||
abuse of the user</a> IOCCC
|
||||
entry from 2000 that directly insults the player but just in case…</p>
|
||||
<p>Now, back to the good stuff!</p>
|
||||
width=1536 height=1684></p>
|
||||
<p>But before I help any sinners embark on this once in a lifetime journey, some
|
||||
travellers might wish to look at the <a href="#jokes">commentary on the jokes</a> (and
|
||||
possibly the <a href="#disclaimer">disclaimer</a>) as well as the <a href="#humour">humour</a>
|
||||
section, <a href="#history">historical references</a> and <a href="#cultural">cultural references</a>
|
||||
as well. The commentary is primarily for those who might be uncomfortable with
|
||||
the jokes that go with the theme. Probably totally unnecessary, especially given
|
||||
the <a href="https://www.ioccc.org/2000/briddlebane/index.html">Best abuse of the user</a>
|
||||
IOCCC entry from 2000 that directly insults the player but just in case…</p>
|
||||
<p>Now, back to the good stuff (not that the jokes are not a good part of it)!</p>
|
||||
<p>This program is an <strong>ABSOLUTELY ABSURD PARODY</strong> of the classic Oregon Trail,
|
||||
although it’s actually something else entirely now, hence the name change (not
|
||||
‘Oregon Trail: …’).</p>
|
||||
@@ -583,7 +575,8 @@ things I have done - and some are really quite unique and cool, or at least I
|
||||
think they are unique (I have never seen these things before nor have I even
|
||||
seen any suggestion of them before, one because it’s absolutely contrary to how
|
||||
it works in C, namely near 200 NUL terminated <code>char *</code>s in a single flat <code>char *</code> - no, not an array of <code>char *[]</code>).</p>
|
||||
<p>See <a href="obfuscation.html">obfuscation.html</a> and my <a href="#conclusion">concluding remarks</a> for
|
||||
<p>See <a href="obfuscation.html">obfuscation.html</a> and my <a href="#conclusions">concluding
|
||||
remarks</a> for
|
||||
more details on just how many <code>goto</code>s I have but beware of monsters. But be careful
|
||||
if you have a heart condition. And if you’re a computer scientist make sure
|
||||
you’re not at risk of stroke.</p>
|
||||
@@ -684,15 +677,15 @@ tactics (no need), to be on theme, you rob (or attempt to rob!) them. The joke
|
||||
before it happens is one thing but if it succeeds it’s even more ludicrous (and
|
||||
funny - and also perhaps sardonic).</p>
|
||||
<p>And if you do succeed you get some things too but not all of what you might
|
||||
expect! It might be called a kind of damaging (some might say ‘damning’) event but it
|
||||
fits the theme quite well and although it (and this is not the only case this
|
||||
happens in the game) might not be something most people care to think about (but
|
||||
see <a href="#disclaimer">Disclaimer</a> and also <a href="#vomitory">what the judges LIKE</a>, yes
|
||||
cannibalism does in fact occur in the game, to be blunt (not that the judges
|
||||
like THAT but you’ll see what I mean if you read that section: which is by no
|
||||
means necessary for most people!). Of course it’s happened throughout history
|
||||
including on the trail so even if the judges did not like to throw up (and
|
||||
laugh, which I would guess they will also be doing), it still fits well.</p>
|
||||
expect! It might be called a kind of damaging (some might say ‘damning’) event
|
||||
but it fits the theme quite well and although it (and this is not the only case
|
||||
this happens in the game) might not be something most people care to think about
|
||||
(but see <a href="#vomitory">what the judges LIKE</a>, yes cannibalism does in fact occur
|
||||
in the game, to be blunt (not that the judges like THAT but you’ll see what I
|
||||
mean if you read that section: which is by no means necessary for most people!).
|
||||
Of course it’s happened throughout history including on the trail so even if the
|
||||
judges did not like to throw up (and laugh, which I would guess they will also
|
||||
be doing), it still fits well.</p>
|
||||
<p>There are actually far more ridiculous examples of this, things that make no
|
||||
sense, like most of the game. But that’s what makes it so much fun. There are
|
||||
many other absolutely ridiculous things, and the above is only a small sample of
|
||||
@@ -748,8 +741,8 @@ are even better here</a>.</p>
|
||||
<p>The jokes that have what some people might question actually have multiple
|
||||
interpretations and if one goes to what they find ‘questionable’ that’s actually
|
||||
on their end and very possibly (in many cases this is almost certainly the case)
|
||||
not even my original idea. But that’s discussed in the <a href="#disclaimer">disclaimer</a>
|
||||
and the <a href="#jokes">commentary on the jokes</a>.</p>
|
||||
not even my original idea. But that’s discussed in the <a href="#jokes">commentary on the
|
||||
jokes</a>.</p>
|
||||
<p>For those who are curious enough but do not want to try and figure it out: I do
|
||||
offer a section of some of the <a href="#differences">differences</a> from the May
|
||||
1978 issue of Creative Computing (though as it’s mostly a different game it
|
||||
@@ -802,7 +795,8 @@ limits (certainly not possible with obfuscation, maybe not otherwise)!</p>
|
||||
<p>See my somewhat unserious <a href="#dedications">dedications</a> as well, if you’re bored
|
||||
and easily amused.</p>
|
||||
<h3 id="disclaimer">Disclaimer</h3>
|
||||
<p><strong>PUBLIC HEALTH ADVISORY</strong>: as everyone will have noticed I write a lot. So IF
|
||||
<p><strong>PUBLIC HEALTH ADVISORY</strong>: as everyone who already knows me, and as new people
|
||||
will have noticed already: I write a lot. So IF
|
||||
you believe that all I have written is circumlocution, and you have
|
||||
circumlocutophobia aka logoblabberophobia (fear of circumlocution - yes those
|
||||
are made up), and you also have hippopotomonstrosesquipedalobibliophobia (fear
|
||||
@@ -860,9 +854,11 @@ a narrator).</p>
|
||||
:-) ) does offend you, and I suppose that’s the real one for some people, I can
|
||||
offer only: it’s nothing serious and all in good fun; there are a lot of jokes
|
||||
and in fact <strong>the PLAYER CHARACTER (PC) is playfully MOCKED</strong> by the narrator
|
||||
<strong>EXACTLY FOR</strong> this pact and their behaviour! As you’ll notice the narrator
|
||||
also has a somewhat dubious character (which is also how it would go in real
|
||||
life, given what the narrator is) but also in vague and ambiguous ways.</p>
|
||||
<strong>EXACTLY FOR</strong> this pact and their behaviour! Of course as the narrator is the
|
||||
devil that means the devil is mocking the PC for making a pact with the devil,
|
||||
which makes it even more ridiculous. As you’ll notice the narrator also has a
|
||||
somewhat dubious character (which is also how it would go in real life, at least
|
||||
if it existed, given what the narrator is) but also in vague and ambiguous ways.</p>
|
||||
<p>That is also discussed later in the humour subsection. As I note elsewhere I
|
||||
think, I have a personal problem with labelling people a sinner and I cannot
|
||||
even name all of the sins which adds to the lack of seriousness - and adding to
|
||||
@@ -1560,7 +1556,7 @@ winning the game (what is winning in this case? - see below). This is a play on
|
||||
the fact that original Oregon Trail (and my game is even worse) is a goto hell
|
||||
spaghetti code and my joke in the <a href="obfuscation.html">obfuscation.html</a> file (not to
|
||||
mention the joke of using the obscene amount of <code>goto</code>s in a single small
|
||||
program (see the obfuscation file for more on that as well as <a href="#conclusion">concluding
|
||||
program (see the obfuscation file for more on that as well as <a href="#conclusions">concluding
|
||||
remarks</a>).</p>
|
||||
<p>The message is full of irony for added effect, namely the ‘WELCOME TO HELL!’ and
|
||||
calling it your forever home, plus god wishing you a prosperous life ahead.</p>
|
||||
@@ -3085,22 +3081,27 @@ traits I do not even know how to describe. Perhaps they would be utterly
|
||||
ineffable.</p>
|
||||
<p>Actually I wanted to see what it was like. It was VERY amusing - but only
|
||||
because I did not have to debug it. For the submission I included line changes
|
||||
for JUST the third prompt. It looked like:
|
||||
time (mere hours left) but to get to JUST the third prompt this is the lines it</p>
|
||||
for JUST the third prompt. Yes, what would only take a few seconds of play. It
|
||||
looked like this (I only did the third prompt as I had mere hours left to
|
||||
finish):</p>
|
||||
<pre><code> 19 20 21 32 69 82 34 33 34 47 45 47 50 83 34 33 34 47 45 47 50 83 34 33 34</code></pre>
|
||||
<p>I said the game loop is almost certainly much worse, especially those two for
|
||||
loops I mentioned, but there is much much more. If this is easier to follow then
|
||||
I’m a dragon. I’m not a dragon. I have a secret for you: dragons don’t exist.
|
||||
Except on the Oregon Trail.</p>
|
||||
<p>I was right too: the entire game is worse, far far worse. After this won I did a
|
||||
full sequence. This is from start to finish and I include it for your amusement.
|
||||
Or horror. There are a few times where the line is the same but that only shows
|
||||
how very often the line changes. It is a total of 985 changes, counting
|
||||
function calls (i.e. each call to one of the few functions is a jump); calls to
|
||||
the macros are not counted.</p>
|
||||
<p>This is in a program that is JUST 85 lines! A program that has only 85 lines
|
||||
full sequence. This is from start to finish and I include it for your amusement
|
||||
(see <a href="gotos.txt">gotos.txt</a>). Or horror. There are a few times where the line
|
||||
is the same but that only shows how very often the line changes. It is a total
|
||||
of <strong>985</strong> (!) changes, counting function calls (i.e. each call to one of the few
|
||||
functions is a jump); calls to the macros are not counted.</p>
|
||||
<p>This is in a program that is <strong>JUST 85 (!) lines</strong>! A program that has only 85 lines
|
||||
COUNTING the <code>#include</code>s, <code>#define</code>s, other functions and 14 blank lines that
|
||||
jumps 985 times is astonishing.</p>
|
||||
jumps 985 times is astonishing. Of course that’s not the only technique but the
|
||||
title of the award and the judges’ remarks are rather fitting as it is
|
||||
diabolical to follow this code (and the theme of the game fits as well); the
|
||||
<a href="obfuscation.html">obfuscation.html</a> shows even more on this - and the other
|
||||
things I did as well.</p>
|
||||
<blockquote>
|
||||
<p>I have yet to see a single study that supported the supposition that GOTOs are
|
||||
harmful (I presume this is not because nobody has tried). Nonetheless, people
|
||||
@@ -3111,20 +3112,23 @@ dismiss any statement opposing it.</p>
|
||||
<p>Well after a bit more than 38 years I have finally provided exactly what Frank
|
||||
said was missing. And it was about time. Not that it didn’t happen before. But
|
||||
he was wrong.</p>
|
||||
<p>It is not about not trying. But even IF he was right, he
|
||||
sure is WRONG NOW. Anyone who thinks otherwise needs to try and debug
|
||||
<p>It is not about not trying. But even IF he WAS right, he
|
||||
sure as hell is WRONG NOW. Anyone who thinks otherwise needs to try and debug
|
||||
my program - or maintain it. Or write it.</p>
|
||||
<p>It would have been SO MUCH EASIER if I did not use 134 <code>goto</code>s. Actually, even a
|
||||
tiny portion of that would make it harder. Nobody, whether they’re in their
|
||||
right mind or not, would WANT to maintain this, or something even close to it.
|
||||
Feel free to pass on judgement to me. I welcome it!</p>
|
||||
Feel free to pass on judgement to me. I welcome it! You have to be mad and
|
||||
embrace it to do this. I went full out and if I didn’t have to do other things
|
||||
(or felt like fewer events would be worth it) I would have done even more
|
||||
<code>goto</code>s for this very reason.</p>
|
||||
<p>Even flex/bison code, which as far as I am aware uses FAR fewer <code>goto</code>s, is
|
||||
notorious for <code>goto</code>s and is quite hard to follow. It would be a nightmare to
|
||||
try and maintain without the .l/.y source files.</p>
|
||||
<p>Okay, yes, I admit it: my abuse is extreme.</p>
|
||||
<p>That doesn’t matter. As I remind everyone later, Apple caused a security hole
|
||||
because of a SINGLE misplaced <code>goto</code>. Mine is 133 more than that - and it works.
|
||||
It shouldn’t.</p>
|
||||
It shouldn’t. But of course it does.</p>
|
||||
<blockquote>
|
||||
<p>Then they turn around and say, ‘See, the program with GOTOs is more complex.’
|
||||
In short, the belief that GOTOs are harmful appears to have become a religious
|
||||
@@ -3132,7 +3136,7 @@ doctrine, unassailable by evidence.</p>
|
||||
</blockquote>
|
||||
<p>Well, Frank, I hope you appreciate the evidence now.</p>
|
||||
<p>I could go on but I don’t want to criticise, as I said somewhere, and it’s not
|
||||
really important. My point was that where 1987/hines IS INDEED a beautiful
|
||||
really important. My point was that whereas 1987/hines IS INDEED a beautiful
|
||||
counter-example of this letter, mine takes it much further. This program is not
|
||||
something anyone would want to maintain - presumably even Frank.</p>
|
||||
<p>I think everyone gets the idea. The fact I did all this WITHOUT invoking UB or
|
||||
@@ -3146,7 +3150,8 @@ case. I might have had to start over.</p>
|
||||
made even a few more commits. As it is it took a full two months and I BARELY
|
||||
finished this. In fact I finished it within hours of the contest closing! It was
|
||||
not even 12 hours before closing time. I barely made it. Part of that is I added
|
||||
even more <code>goto</code>s, despite the fact I had reached 2503 in size.</p>
|
||||
even more <code>goto</code>s, despite the fact I had reached 2503 in size, with careful
|
||||
size optimisation.</p>
|
||||
<p>Countless times I came up with ways to do more, at least where it was possible,
|
||||
such as freeing space so I could change some <code>break;</code>s to a <code>goto Z;</code> as <code>Z:</code>
|
||||
was already there. The only other times this happened is before I had changed
|
||||
@@ -3154,6 +3159,19 @@ the code so much that you can no longer trust what a block of code is. Like I
|
||||
said, I could not really move any more code if I wanted to, even if I had more
|
||||
space free. Those very few places where the code could in theory be moved are
|
||||
already controlled by goto.</p>
|
||||
<p>In fact I could have done more <code>goto</code>s in this version but I wanted to help the
|
||||
judges out in judging - that and it was easier to verify things are correct.
|
||||
<code>iocccsize</code> reports on prog.c 2457 and after I won this I kind of wish I did
|
||||
take it even further just to mess with everyone even more.</p>
|
||||
<p>But as I said elsewhere basically everything is in the wrong place so what even
|
||||
would be the point in doing that? It would probably not make it harder to follow
|
||||
(well it would but still would there be a point in it?); it would just make it
|
||||
even more absurd: the amount of spaghetti code makes it nigh impossible to
|
||||
follow and I’m happy to have smashed the record of 24 by 110 <code>goto</code>s, even if I
|
||||
now wish I had gone even further.</p>
|
||||
<p>Nonetheless the 134 is what won so that’s what I’ll live by (and I doubt it’ll
|
||||
be broken as this kind of trick will, as the general remarks about the entries
|
||||
note, not be as worthy, even if <code>goto</code>s are alas, not banned outright).</p>
|
||||
<p>Anyway, as I noted in <a href="obfuscation.html">obfuscation.html</a>, no initialisation is
|
||||
skipped in my jumps and that is what causes <code>goto</code> to invoke UB.</p>
|
||||
<p>Everything is file scope. And in any case, when I do jump to a place, everything
|
||||
@@ -3361,6 +3379,32 @@ every way, probably even if there wasn’t code that seems dead (or is dead) - a
|
||||
even worse as I have not even revealed everything with that. I don’t even think
|
||||
<strong>I</strong> could change this to not use <code>goto</code>s without breaking it! But what I do
|
||||
know is it works exactly as intended. But it shouldn’t. It really shouldn’t.</p>
|
||||
<h3 id="dedications-and-thanks">Dedications and thanks</h3>
|
||||
<p>I dedicate this to all the poor souls who suffered in the <a href="https://en.wikipedia.org/wiki/Salem_witch_trials">Salem Witchcraft
|
||||
Trials</a>, the <a href="https://en.wikipedia.org/wiki/Great_Molasses_Flood">Great Molasses
|
||||
Flood</a> as well as all those
|
||||
who died on the <a href="https://en.wikipedia.org/wiki/Oregon_Trail">Oregon Trail</a>.</p>
|
||||
<p>Oh and those who were eaten by <a href="https://en.wikipedia.org/wiki/Dragon">Dragons</a>,
|
||||
attacked by <a href="https://en.wikipedia.org/wiki/Werewolf">Werewolves</a> or bitten by a
|
||||
<a href="https://en.wikipedia.org/wiki/Vampire">Vampire</a> (fun or not so fun fact: there
|
||||
is a disease that has some of the similarities to vampirism, so much so that
|
||||
it’s known also as the vampire disease:
|
||||
<a href="https://medicover-genetics.com/porphyria-the-facts-behind-the-so-called-vampire-disease/">porphyria</a>.
|
||||
Plus <a href="https://en.wikipedia.org/wiki/Blackbeard">Blackbeard’s</a> victims. Oh and
|
||||
yes anyone attacked by the <a href="https://en.wikipedia.org/wiki/Flying_Spaghetti_Monster">Flying
|
||||
Spaghetti Monster</a>
|
||||
or those who were tricked by the <a href="http://news.bbc.co.uk/onthisday/hi/dates/stories/april/1/newsid_2819000/2819261.stm">BBC April Fool’s prank of the
|
||||
Spaghetti
|
||||
tree</a>
|
||||
on the <a href="https://www.bbc.co.uk/programmes/b006t14n">Panorama programme</a> in 1957.
|
||||
Bless you all (probably by the <a href="https://www.ioccc.org/2024/ferguson1/index.html">devil on the Oregon
|
||||
Trail</a>).</p>
|
||||
<p>On a more serious note I also dedicate this to my lovely Mum Dianne and
|
||||
my dear cousin Dani plus my great friend Martijn Schoemaker who gave me my first
|
||||
real opportunity (a MUD) to get great at C back in the early 2000s and who
|
||||
reminded me of the IOCCC so many years ago now.</p>
|
||||
<p>Also thanks to my friends for putting up with my slow responses (and in some
|
||||
cases no response at all) as I was working on this.</p>
|
||||
<h4 id="p.s.-select-remarks-made-to-the-ioccc-judges">P.S. select remarks made to the IOCCC Judges</h4>
|
||||
<p>A hilarious truth is that to write less can take drastically more time than to
|
||||
write more and unfortunately I am running out of time quickly. Writing this game
|
||||
@@ -3668,6 +3712,7 @@ helps you appreciate the careful design even more.<a href="#fnref2" class="footn
|
||||
<li><a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson1/byteread.c">byteread.c</a> - prints out the strings without locations</li>
|
||||
<li><a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson1/bytetest.c">bytetest.c</a> - prints every string extracted from data</li>
|
||||
<li><a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson1/deobfuscation.html">deobfuscation.html</a> - hints on how to deobfuscate</li>
|
||||
<li><a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson1/gotos.txt">gotos.txt</a> - text file showing all the line changes in a run</li>
|
||||
<li><a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson1/lencount.c">lencount.c</a> - counts strings and reports longest one</li>
|
||||
<li><a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson1/mbcheck.c">mbcheck.c</a> - show location of multibyte characters</li>
|
||||
<li><a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson1/obfuscation.html">obfuscation.html</a> - obfuscation information</li>
|
||||
|
||||
@@ -692,7 +692,7 @@ pRNG).</p>
|
||||
that the Devil wishes they were too:</p>
|
||||
<p><img src="gotos.png"
|
||||
alt="image of Devil being strangled to death by spaghetti, regretting the pact"
|
||||
width=640 height=640></p>
|
||||
width=1024 height=1024></p>
|
||||
<p>I have shown JUST HOW LUDICROUS <code>goto</code>s really are and JUST HOW MUCH STRUCTURE
|
||||
AND MAINTAINABILITY is lost with <code>goto</code>s: a goal of the contest met simply by
|
||||
one thing taken to absurd levels. But if this is not the worst or best abuse of
|
||||
|
||||
@@ -292,7 +292,7 @@ that the Devil wishes they were too:
|
||||
|
||||
<img src="gotos.png"
|
||||
alt="image of Devil being strangled to death by spaghetti, regretting the pact"
|
||||
width=640 height=640>
|
||||
width=1024 height=1024>
|
||||
|
||||
I have shown JUST HOW LUDICROUS `goto`s really are and JUST HOW MUCH STRUCTURE
|
||||
AND MAINTAINABILITY is lost with `goto`s: a goal of the contest met simply by
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"dir" : "ferguson2",
|
||||
"entry_id" : "2024_ferguson2",
|
||||
"title" : "navajo-code-talkers",
|
||||
"abstract" : "Navajo code talker translator",
|
||||
"abstract" : "Navajo Code Talker translator",
|
||||
"author_set" : [
|
||||
{
|
||||
"author_handle" : "Cody_Boone_Ferguson"
|
||||
|
||||
@@ -434,7 +434,7 @@
|
||||
</a>
|
||||
<h1>The International Obfuscated C Code Contest</h1>
|
||||
<h2>2024/ferguson2 - Prize in yil-tas</h2>
|
||||
<h3>Navajo code talker translator</h3>
|
||||
<h3>Navajo Code Talker translator</h3>
|
||||
</div>
|
||||
|
||||
<!-- END: this line ends content from: inc/header.default.html -->
|
||||
|
||||
@@ -515,8 +515,8 @@ the <a href="index.html">Official IOCCC website</a>.</p>
|
||||
<li><a href="2024/codemeow/index.html">2024/codemeow</a> - Prize in tray planting - <em>bonsai generator</em></li>
|
||||
<li><a href="2024/endoh1/index.html">2024/endoh1</a> - Prize in patient pointillism - <em>slow ray tracer in CPP</em></li>
|
||||
<li><a href="2024/endoh2/index.html">2024/endoh2</a> - Prize in solid body physics - <em>rotating rigid body simulation</em></li>
|
||||
<li><a href="2024/ferguson1/index.html">2024/ferguson1</a> - Prize in diabolical logistics - <em>Oregon trail pact with the devil</em></li>
|
||||
<li><a href="2024/ferguson2/index.html">2024/ferguson2</a> - Prize in yil-tas - <em>Navajo code talker translator</em></li>
|
||||
<li><a href="2024/ferguson1/index.html">2024/ferguson1</a> - Prize in diabolical logistics - <em>A Pact With the Devil On the Oregon Trail</em></li>
|
||||
<li><a href="2024/ferguson2/index.html">2024/ferguson2</a> - Prize in yil-tas - <em>Navajo Code Talker translator</em></li>
|
||||
<li><a href="2024/howe/index.html">2024/howe</a> - Nice accent eh-ward - <em>mini vi</em></li>
|
||||
<li><a href="2024/kramer/index.html">2024/kramer</a> - Prize in linguistic arithmetic - <em>natural language numerical calculator</em></li>
|
||||
<li><a href="2024/kurdyukov1/index.html">2024/kurdyukov1</a> - Prize in phased periodicity - <em>phase of the Moon</em></li>
|
||||
|
||||
@@ -85,8 +85,8 @@ Congratulations to:
|
||||
* [2024/codemeow](2024/codemeow/index.html) - Prize in tray planting - _bonsai generator_
|
||||
* [2024/endoh1](2024/endoh1/index.html) - Prize in patient pointillism - _slow ray tracer in CPP_
|
||||
* [2024/endoh2](2024/endoh2/index.html) - Prize in solid body physics - _rotating rigid body simulation_
|
||||
* [2024/ferguson1](2024/ferguson1/index.html) - Prize in diabolical logistics - _Oregon trail pact with the devil_
|
||||
* [2024/ferguson2](2024/ferguson2/index.html) - Prize in yil-tas - _Navajo code talker translator_
|
||||
* [2024/ferguson1](2024/ferguson1/index.html) - Prize in diabolical logistics - _A Pact With the Devil On the Oregon Trail_
|
||||
* [2024/ferguson2](2024/ferguson2/index.html) - Prize in yil-tas - _Navajo Code Talker translator_
|
||||
* [2024/howe](2024/howe/index.html) - Nice accent eh-ward - _mini vi_
|
||||
* [2024/kramer](2024/kramer/index.html) - Prize in linguistic arithmetic - _natural language numerical calculator_
|
||||
* [2024/kurdyukov1](2024/kurdyukov1/index.html) - Prize in phased periodicity - _phase of the Moon_
|
||||
|
||||
+2
-2
@@ -529,10 +529,10 @@
|
||||
<a class="normal" href="2024/endoh2/index.html">2024/endoh2</a> - Prize in solid body physics - <i>rotating rigid body simulation</i>
|
||||
</div></li>
|
||||
<li><div id="2024_ferguson1">
|
||||
<a class="normal" href="2024/ferguson1/index.html">2024/ferguson1</a> - Prize in diabolical logistics - <i>Oregon trail pact with the devil</i>
|
||||
<a class="normal" href="2024/ferguson1/index.html">2024/ferguson1</a> - Prize in diabolical logistics - <i>A Pact With the Devil On the Oregon Trail</i>
|
||||
</div></li>
|
||||
<li><div id="2024_ferguson2">
|
||||
<a class="normal" href="2024/ferguson2/index.html">2024/ferguson2</a> - Prize in yil-tas - <i>Navajo code talker translator</i>
|
||||
<a class="normal" href="2024/ferguson2/index.html">2024/ferguson2</a> - Prize in yil-tas - <i>Navajo Code Talker translator</i>
|
||||
</div></li>
|
||||
<li><div id="2024_howe">
|
||||
<a class="normal" href="2024/howe/index.html">2024/howe</a> - Nice accent eh-ward - <i>mini vi</i>
|
||||
|
||||
Reference in new issue
Block a user