TIM Labs

2014年7月アーカイブ

前回までのあらすじ

オセロシリーズに続く題材としてシェフィを実装しようと思い立った俺達は大まかな設計をしただけで力尽きてしまった。実際のコードはまだ一行も書かれていない。果たして無事にゲームを実装し終えることができるのか。

Rails のバリデーションには特定のコンテキストのときだけ実行させることができる on オプションが存在している。

validates :field1, presence: true
validates :field2, presence: true
validates :field3, presence: true, on: :admin

こうすると、 valid?(:admin) のときだけは全てのフィールドが必須入力となるが、そうでない場合は field1field2 のみ必須となり、 field3 は任意入力になる。なるほど、便利だ。

ところが、これを逆転させたいとき、即ち :admin コンテキストのとき「だけ」field3 を任意入力にしたいとなると、途端に面倒なことになる。

validates :field1, presence: true
validates :field2, presence: true
validates :field3, presence: true, on: [:create, :update, :context_foo, :context_bar]

おおう。これ、 :context_baz が増えたら、ここもメンテナンスせなあかんのか? ちょっとそれはなくない? このコードからは「:admin コンテキストの時だけ任意入力」という意図が全く読み取れない(そもそも :admin が出てこないではないか)ので、適切にメンテナンスするのは無理がある。

問題

前回、新人研修の一環として「オセロの実装」を課題として設定したものの、 設定した当人が実装できないようでは話にならないので頑張って実装しました (一人二役で指す寂しいゲーム編 / 遅延評価編 / 仮AI作成編 / 本格AI作成編 / AI高速化編 / AI vs AI編)。

これはこれで楽しかったものの、良くも悪くもオセロですから、 寝るのも忘れて遊びたくなるものかと言われるとそういうものではありませんでした。

どうせならもっとエキサイティングでキュートなゲームを実装してみたいものです。 何か良い題材はないものでしょうか。

このアーカイブについて

このページには、2014年7月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2014年6月です。

次のアーカイブは2014年8月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。