Grand Prize

大賞

受賞者:Roemer B. Lievaart

引用元:https://www.ioccc.org/1987/lievaart/lievaart.c

審査員・作者による説明:https://www.ioccc.org/1987/lievaart/hint.html

動作

リバーシ(オセロ)のAI。起動するとレベルを聞かれる(0–10)。

$ gcc -o lievaart lievaart.c

$ ./lievaart
Level:

次に打つ場所を聞かれる。

$ ./lievaart
Level:0
You:

適当に56を選ぶと、

$ ./lievaart
Level:0
You:56
Wait
Value:24
move: 46
You:

相手が46に打ったことがわかる。ファイル長制限(1024バイト)のため、盤面表示はできなかったとのことで、目隠しオセロになる。

おまけとして、盤面表示するバージョン(lievaart2.c)も付属している(文字数制限を超えているので正式な作品ではない)。

$ ./lievaart2
Level:0
12345678
........1
........2
........3
...XO...4
...OX...5
........6
........7
........8
You:56
12345678
........1
........2
........3
...XO...4
...OOO..5
........6
........7
........8
Wait
Value:24
move: 46
12345678
........1
........2
........3
...XXX..4
...OOO..5
........6
........7
........8
You:
...

解説

IOCCC初のAI作品。hint.textによるとアルファベータ法とのこと。

これの影響かどうかはわからないけれど、IOCCCではゲームAIが定番ネタのひとつとなっていく。

1024バイトの文字数制限をクリアするために#define D defineのテクニックを使っているが、現代のコンパイラではそのままでは動かない。残念。

パッチ

パッチをダウンロード