Best X11 Entry

最高のX11作品

受賞者:Jon Thingvold

引用元:https://www.ioccc.org/1996/jonth.c

審査員・作者による説明:https://github.com/ioccc-src/winner/blob/main/1996/jonth.hint

動作

X Window Systemでの対戦○×ゲーム。

$ gcc -o jonth jonth.c -lX11 -lm

$ ./jonth

次のような窓が2つ開き、片方は✕のプレイヤー用、もう片方は○のプレイヤー用。 ○ではなく✕が先手らしいので注意。

tic-tac-toe(○✕ゲーム)
図:tic-tac-toe(○✕ゲーム)

解説

プリプロセスの指示しかないところが目を引く。 これは/usr/include/X11/Xlib.hの中のXIMOfICのプロトタイプ宣言(下記抜粋)を置き換えることで実現されている。 互換性にかなり不安があるが、2021年現在では動いた。

extern XIM XIMOfIC(
    XIC /* ic */
);

いつか動かなくなったときは、#include <X11/Xlib.h>をファイル先頭に移し、上記のプロトタイプ宣言をファイル末尾に貼り付ければ動くと思う。

jonth.hintに「チート方法を探せ」とある。 マークを置いたらchar型変数を++してフラグをたてているので、255回くらいクリックすることで相手のマークを消すことができる。