Most circuitous walk

もっとも回り道

受賞者:Daniel Vik

引用元:https://www.ioccc.org/2005/vik/vik.c

審査員・作者による説明:https://www.ioccc.org/2005/vik/hint.text

動作

Wolfensteinスタイルのグラフィックエンジン。

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

$ ./vik
デフォルトの画面
図:デフォルトの画面

矢印キーで移動できる。左右で向きを変える。上で前に進む、下で後ろに戻る。

オプションもある。

$ ./vik -w 400 maze.map
マップを指定して起動した様子
図:マップを指定して起動した様子

-w 400は画面の横幅(省略可能)、maze.mapは迷路の指定(省略可能)。

作者自身によるYouTube動画。

図:作者によるデモ動画(引用元:https://www.youtube.com/watch?v=u-3oox7FICg

解説

マップは次のようなフォーマットで指定する。

aaaaaaaaaaaaa
a           a
a      *    a
a    bbbb   cccccccc
c                  c
cccccccccccccccccccc

*が初期位置、abcはそれぞれa.bmp、b.bmp、c.bmpをテクスチャとする壁。 増やすこともできる。

コードはindentコマンドをかけても読みやすくならない。 その証明として、あらかじめindentをかけてあるとのこと。