Programmer's Nightmare Onlineを作りました

とても手抜き、、いやいや、まだルールに試行錯誤の余地があるのでゲーム進行の自由度が失われないことに重点を置いた設計なのですぞ!

IRCで会話しながらプレイしたProgrammer's Nightmare 対人戦, Programmer's Nightmare 対人戦2回目, Lingrでの対戦(ログ)(パスワードは「悪夢」をローマ字で)でわかったが、ゲームの進行自体はチャットでの会話でもあまり実害がない。しかし、盤面の共有がちょっと面倒。チャットに貼るとたくさん流れてしまう。特に張った内容が間違っていて修正を入れる場合に間違ったものを消せないから見にくい。あと、カードのドローは「いかさまをしてないと信じてください」といいながらやるしかなかった。

Programmer's Nightmare Onlineでは

  • カードのディールと盤面の生成
  • 盤面の状況を書き換えて追加or直前の盤面を上書き
  • 公正なドロー
  • 盤面のカードをクリックするとその解説ページへジャンプ

などの機能を実装してある。


とはいえまだいろんなことを試行錯誤している過程なのであんまり固く作りたくなかったので基本的には「今まで手元のテキストエディタでやっていたことをブラウザ上のtextareaでやる」というだけ。ゲームの進行管理は人間がやります。

http://nishiotools.appspot.com/programmers_nightmare/

まずはmake new programを押す。

プログラムが出るので、これでOKならstart new gameを押す。

で、チャットで話しながら盤面を書き換えてaddを押す、という流れでゲームを進める。直前の書き込みが失敗だったときにはupdateで上書きできる。draw a cardで公平にカードをドローする。

drawするとこうなる。「プログラムかどうか」は、テキストエリアに最初から入っている文字列が「一番最新のプログラム」という判断だけに使われている。上の画像だと「drawn card is...」はプログラムではない設定になっているのでtextareaに入っていない。

Lingr: http://www.lingr.com/room/programmers_nightmare にくるともし僕がいればテストがてらにこれを使って対戦をしたりするかもしれません。他の人の対戦も可能ならこれを使って感想とかログとかを貰えるとうれしいです。