-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
37 changed files
with
2,020 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
--- | ||
id: 1994/dodsond1 | ||
year: 1994 | ||
order: 1 | ||
authors: "Don_Dodson" | ||
orig_url: "https://www.ioccc.org/1994/dodsond1.c" | ||
hint_url: "https://github.com/ioccc-src/winner/blob/main/1994/dodsond1.hint" | ||
title: "IOCCC 1994: Best Game" | ||
award_ja: "最高のゲーム" | ||
--- | ||
|
||
## 動作 | ||
|
||
オセロ。 | ||
|
||
``` | ||
$ gcc -o dodsond1 dodsond1.c | ||
$ ./dodsond1 | ||
A : : : : : : : : | ||
B : : : : : : : : | ||
C : : : : : : : : | ||
D : : :O:X: : : : | ||
E : : :X:O: : : : | ||
F : : : : : : : : | ||
G : : : : : : : : | ||
H : : : : : : : : | ||
1 2 3 4 5 6 7 8 | ||
? | ||
``` | ||
|
||
自分は`O`で、プロンプトに`E3`のように入力して石を置いていく。 | ||
|
||
``` | ||
?E3 | ||
A : : : : : : : : | ||
B : : : : : : : : | ||
C : : : : : : : : | ||
D : : :O:X: : : : | ||
E : :O:O:O: : : : | ||
F : : : : : : : : | ||
G : : : : : : : : | ||
H : : : : : : : : | ||
1 2 3 4 5 6 7 8 | ||
A : : : : : : : : | ||
B : : : : : : : : | ||
C : : : : : : : : | ||
D : : :O:X: : : : | ||
E : :O:X:O: : : : | ||
F : :X: : : : : : | ||
G : : : : : : : : | ||
H : : : : : : : : | ||
1 2 3 4 5 6 7 8 | ||
? | ||
``` | ||
|
||
## 解説 | ||
|
||
プログラムがオセロの格子状になっている。 | ||
シンプルにまとまった作品。 | ||
|
||
ネタ自体は[[[1987/lievaart]]]({{ site.baseurl }}{% link 1987/lievaart.md %})と同じだが、自己言及的なアスキーアートでより現代的な作り直しになっている。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
--- | ||
id: 1994/dodsond2 | ||
year: 1994 | ||
order: 2 | ||
authors: "Don_Dodson" | ||
orig_url: "https://www.ioccc.org/1994/dodsond2.c" | ||
hint_url: "https://github.com/ioccc-src/winner/blob/main/1994/dodsond2.hint" | ||
title: "IOCCC 1994: Most Obfuscated Packaging" | ||
award_ja: "もっとも難読化されたパッケージング" | ||
--- | ||
|
||
## 動作 | ||
|
||
テキストアドベンチャーゲーム。 | ||
|
||
``` | ||
$ gcc -o dodsond2 dodsond2.c | ||
$ ./dodsond2 | ||
You are in room 2 | ||
Passageways to room 14, 15, and 22 | ||
``` | ||
|
||
部屋番号を入力して進む。 | ||
|
||
``` | ||
You are in room 0 | ||
Passageways to room 11, 12, and 28 | ||
11 | ||
You are in room 11 | ||
You smell a wumpus | ||
You hear a rustling sound | ||
Passageways to room 0, 21, and 23 | ||
21 | ||
You are in room 21 | ||
You feel a breeze | ||
Passageways to room 11, 13, and 20 | ||
13 | ||
You are in room 13 | ||
The robber scurries away | ||
You feel a breeze | ||
Passageways to room 14, 17, and 21 | ||
21 | ||
... | ||
Passageways to room 8, 15, and 28 | ||
15 | ||
You are in room 15 | ||
The bats pick you up and drop you in room 6 | ||
You are in room 6 | ||
You fell in a pit | ||
Your score is 20 | ||
``` | ||
|
||
落とし穴に落ちてゲームオーバーの例。 | ||
|
||
## 解説 | ||
|
||
[Hunt the Wumpus](https://en.wikipedia.org/wiki/Hunt_the_Wumpus)というテキストベースのアドベンチャーゲームを意識して作られている。 | ||
|
||
目的は、ウンパス(Wumpas)というモンスターを倒すこと。 | ||
矢を拾って、モンスターの位置を予測して、隣の部屋から矢を射って当たればクリア。 | ||
ウンパスが近くにいると「匂いがする」とう表示が出る(同じ部屋に入ってしまうと食われる)。 | ||
コマンドは、`s`で矢を射る、`i`で持っている矢の数を表示するなど。 | ||
詳しくはdodsond2.hintを参照。 | ||
ダンジョンには他に、落とし穴(即死トラップ)、コウモリ(他の部屋に連れ去られる)、盗賊(持っている矢を盗む)がある。 | ||
落とし穴が近いとすきま風を感じたり、コウモリが近いと音が聞こえたりする。 | ||
よくできている。 | ||
|
||
このプログラムは1994年のサイズ制限(空白文字などを除いて1536文字以内)を超えているのだが、gzipで圧縮することでサイズ制限を回避した、とのこと。 | ||
現代だとどうも理解しがたい主張だが、gzipは時代の最先端を行く圧縮フォーマットだったので(gzipのバージョン1.0は1993年)、感覚が違ったのかも知れない。 | ||
なお、今後は圧縮ツールでサイズ制限を回避したことにするのはダメとのこと。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
--- | ||
id: 1994/horton | ||
year: 1994 | ||
order: 3 | ||
authors: "Mark_Horton" | ||
orig_url: "https://www.ioccc.org/1994/horton.c" | ||
hint_url: "https://github.com/ioccc-src/winner/blob/main/1994/horton.hint" | ||
title: "IOCCC 1994: Best Utility" | ||
award_ja: "最高のユーティリティ" | ||
--- | ||
|
||
## 動作 | ||
|
||
3次関数を端末で描画。y=x^3を描いた例。 | ||
|
||
``` | ||
$ gcc -o horton horton.c | ||
$ ./horton 1 0 0 0 | ||
r------------------------------------------------------------r-----, | ||
| j' | | ||
| ,I | | ||
| .F | | ||
| ./ | | ||
| ./ | | ||
| ,' | | ||
| ,/` | | ||
| ._j'` | | ||
| .,-r----'""""" | | ||
| ,/" | | ||
| ./` | | ||
| j' | | ||
| ;' | | ||
| j' | | ||
| ,' | | ||
| .F | | ||
| / | | ||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""` | ||
``` | ||
|
||
y=5x^2を描いた例。 | ||
|
||
``` | ||
$ ./horton 0 5 0 0 | ||
r---------------------,r-----------------------------------------x-, | ||
| Y, /' | | ||
| '\ ./` | | ||
| \, ;' | | ||
| '\. ,/` | | ||
| `\. .r` | | ||
| `\. ,r' | | ||
| "v,. .r'` | | ||
| "--,_ _:j'` | | ||
| '"""'""" | | ||
| | | ||
| | | ||
| | | ||
| | | ||
| | | ||
| | | ||
| | | ||
| | | ||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""` | ||
``` | ||
|
||
y=50xを描いた例。 | ||
|
||
``` | ||
$ ./horton 0 0 50 0 | ||
r---------------------------------------------------------------,r-, | ||
| ,j' | | ||
| .r/` | | ||
| ,j' | | ||
| .r/` | | ||
| ,j' | | ||
| .,/` | | ||
| _/' | | ||
| .,/` | | ||
| _/' | | ||
| .,/` | | ||
| ./' | | ||
| ,/" | | ||
| ./'` | | ||
| ,/" | | ||
| ./'` | | ||
| ,/" | | ||
| ./'` | | ||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""` | ||
``` | ||
|
||
## 解説 | ||
|
||
サブキャラクターレンダリング(高解像度な描画バッファを用意して、いくつかのピクセルをグルーピングして、似た形の文字を使って表現する)によってグラフを表現する。 | ||
|
||
コードは3の形状。3次関数だからだろうか。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
--- | ||
id: 1994/imc | ||
year: 1994 | ||
order: 4 | ||
authors: "Ian_Collier" | ||
orig_url: "https://www.ioccc.org/1994/imc.c" | ||
hint_url: "https://github.com/ioccc-src/winner/blob/main/1994/imc.hint" | ||
title: "IOCCC 1994: Most Obfuscated Algorithm" | ||
award_ja: "もっとも難読化されたアルゴリズム" | ||
--- | ||
|
||
## 動作 | ||
|
||
魔法陣のランダム生成。 | ||
|
||
``` | ||
$ gcc -o imc imc.c | ||
$ ./imc 3 | ||
2 7 6 | ||
9 5 1 | ||
4 3 8 | ||
``` | ||
|
||
``` | ||
$ ./imc | ||
8 21 19 5 12 | ||
22 18 1 14 10 | ||
20 2 13 6 24 | ||
4 15 7 23 16 | ||
11 9 25 17 3 | ||
``` | ||
|
||
``` | ||
$ ./imc 10 | ||
23 16 84 5 87 68 52 75 31 64 | ||
17 83 76 14 25 54 73 57 65 41 | ||
85 2 88 21 19 46 59 63 67 55 | ||
79 15 22 93 6 60 36 69 53 72 | ||
86 99 20 7 3 62 70 51 74 33 | ||
98 91 9 80 12 43 27 50 56 39 | ||
92 8 1 89 100 29 48 32 40 66 | ||
10 77 13 96 94 71 34 38 42 30 | ||
4 90 97 18 81 35 61 44 28 47 | ||
11 24 95 82 78 37 45 26 49 58 | ||
``` | ||
|
||
## 解説 | ||
|
||
コード形状はわりと普通だが、アルゴリズム自体が難しいので難読とのこと。 | ||
|
||
`o()`と`s()`と`e()`があり、それぞれ3以上の奇数、4ちょうど、6以上の偶数、の縦横の魔法陣を作る関数らしい。詳細未解読だが面白そう。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
--- | ||
year: 1994 | ||
title: "IOCCC 1994の解説" | ||
layout: contest | ||
--- | ||
## 全体の印象 | ||
|
||
非常に洗練された作品が増えた。 | ||
挙動を作り込んだだけでは満足できず、最低でもアスキーアート化を行うことが期待されるようになっている。 | ||
観客としては、現代風の親しみやすいIOCCCらしさを楽しめるようになってきた。 | ||
|
||
挙動もオリジナリティあふれるものが多い。 | ||
[[[1994/horton]]]({{ site.baseurl }}{% link 1994/horton.md %})のサブキャラクターレンダリングは今後もIOCCCで頻出の手法となった。 | ||
[[[1994/schnitzi]]]({{ site.baseurl }}{% link 1994/schnitzi.md %})は自分自身に適用可能なテキストフィルタで、これもIOCCCの定番ネタ。 | ||
[[[1994/shapiro]]]({{ site.baseurl }}{% link 1994/shapiro.md %})は`argv[0]`の活用が光る。 | ||
[[[1994/westley]]]({{ site.baseurl }}{% link 1994/westley.md %})は発想とコンテンツ力がすばらしい。 | ||
一方で[[[1994/ldb]]]({{ site.baseurl }}{% link 1994/ldb.md %})のように小さくきれいにまとめた一品や、[[[1994/smr]]]({{ site.baseurl }}{% link 1994/smr.md %})のような一発ネタも健在。 | ||
|
||
READMEでは、3人目の審査員や、ウェブサイトのhtmlを書く人が募集されている。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
--- | ||
id: 1994/ldb | ||
year: 1994 | ||
order: 5 | ||
authors: "Laurion_Burchall" | ||
orig_url: "https://www.ioccc.org/1994/ldb.c" | ||
hint_url: "https://github.com/ioccc-src/winner/blob/main/1994/ldb.hint" | ||
title: "IOCCC 1994: Best One-liner" | ||
award_ja: "最高のワンライナー" | ||
--- | ||
|
||
## 動作 | ||
|
||
標準入力から1行をランダムに選んで出力する。 | ||
|
||
``` | ||
$ cat rsp.txt | ||
rock | ||
scissors | ||
paper | ||
$ gcc -trigraphs -o ldb ldb.c | ||
$ ./ldb < rsp.txt | ||
rock | ||
$ ./ldb < rsp.txt | ||
paper | ||
$ ./ldb < rsp.txt | ||
rock | ||
$ ./ldb < rsp.txt | ||
scissors | ||
``` | ||
|
||
## 解説 | ||
|
||
[trigraph](https://ja.wikipedia.org/wiki/%E3%83%88%E3%83%A9%E3%82%A4%E3%82%B0%E3%83%A9%E3%83%95)を使っているワンライナー。 | ||
コードの構造は`while(<cond>);`だけ。 | ||
|
||
アルゴリズムがちょっと面白い。 | ||
1行目は100%の確率で選ぶ、2行目は1/2の確率で選ぶ、3行目は1/3の確率で選ぶ、4行目は1/4の確率で選ぶ、……と進めていき、最後に選んだ行を出力する。 | ||
これですべての行を公平に選べる。 |
Oops, something went wrong.