Windowsのコマンドプロンプト「cmd」でできるスネークゲームをC(++)言語で作ってみた。
ゲームはソースとともに、この記事の下の方でダウンロードリンク貼ってあります。
Windows7を使っているのだけど、Ubuntuで開発してるときには全然何も問題ないところで引っかかった。「エスケープシーケンスが動作しない」のである。
古いWindows(XPとか?)なら標準で入っているようなんだ(流石はXP)けど、新しくなってから入っていないらしい。フンフーンと組んで動かした時の驚きったらなかった…変な文字列が列挙されていく様を見て焦らないプログラマになりたい。
↑ こんな感じ。内部処理をちょっと垣間見れた気はする。
どうしようか、と悩んで調べた(検索エンジンで検索した)ところ、解決方法はあった。「非公式の『ANSI.SYS代替品』として公開されている『ansicon』」というものをインストールする、といった策だ。
参考にさせていただいたのはこちら。
/* <参考文献>
「Windows7のコマンドプロンプトでansiカラーが出ない」 ―『まーぽんって誰がつけたの?』
> http://mpon.hatenablog.com/entry/2014/01/16/215238
「Windows環境でRSpecなどの出力に色を付けるには」 ―『萬由無事覚書』
> http://lajvard.hatenablog.com/entry/2012/03/03/194359
「adoxa / ansicon」 ―『GitHub』
> https://github.com/adoxa/ansicon/downloads
</参考文献> */
もちろん非公式なのでリスクはあるだろう(そこは自己責任だろう)けど、そんなに根本をいじるようではないので個人的には大丈夫だと思う。
というのも、インストーラはどうやら「cmdのAutoRunに『ansiconを読み込む』と書く」だけのようだ。AutoRunというのはレジストリキーだが、これは標準で存在しない場合がある(自分のにはなかったようだった)。cmdは立ち上がるとまずそのAutoRunを読んで実行する。すなわちcmdが立ち上がるたび実行する(Ubuntuのbashなら.bashrc、MS-DOSならAUTOEXEC.BATかな)。
インストールしたら多分再起動した方がいいと思う。レジストリの反映は環境と状況によってまちまちだ。
さて準備に長らくかかったけど、ここらでゲームとそのソースの公開といこう。
ダウンロードリンクはこちら。
> https://dl.dropboxusercontent.com/s/mcj558flcjhautw/Snake.zip?dl=1
まぁ一応readme.txtは目を通してください。そんなこと書かなくても大丈夫だとは思うけど。