引用元: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
のテクニックを使っているが、現代のコンパイラではそのままでは動かない。残念。
パッチ
パッチをダウンロード