土曜日, 2月 12, 2011

腕試し、2年目もだめ

 某社の入社試験、明日の真夜中が提出期限。三問あるうちの2問は昨日のうちに済ませ、今日はプログラミングの問題。
【問題2】
 ゲーム「ぷよぷよ」で、フィールドの状態がテキストで与えられたとき、消える「ぷよ」を消して次のフィールドの状態を出力するプログラムを書け。
 たとえば、色をG/Y/Rで表すとき(Green/Yellow/Red)、


GGR
YGG

であればGが消えて


Y R

になります。

また、このプログラムを使って次のフィールドを与えると19連鎖ののちすべてのぷよが消えることを確認し、消える途中の様子をあわせて提出すること。

GYRR
RYYGYG
GYGYRR
RYGYRG
YGYRYG
GYRYRG
YGYRYR
YGYRYR
YRRGRG
RYGYGG
GRYGYR
GRYGYR
GRYGYR


* プログラム言語は自由です。
* いわゆる「透明ぷよ」は考慮しないでOKです。
* 書くのにかかった時間も自己申告してください。目安として、2時間以上かかった人は採用は難しいでしょう。僕が自分で書いてみたら30分でした。
* 19連鎖のフィールドはここ[YouTube]から写しました。ぷよぷよを知らないという人はこれを見ればルールはわかるでしょう。
* 環境によっては19連鎖の入力が正しく表示されないかもしれません。先頭行の最初の2列は空白で、その後にGYRRです。
 問題が発表されてから、何度も頭のなかでシュミレーションし、開発環境を構築し、体調を整え、普段より多目のカフェインでドーピングして挑戦。

 最近のコンパイラの妙に強いエラーチェックで 10分ほど無駄に使ったが、それがなくても2時間の時間制限はかなりきつい。消す「ぷよ」を検出するロジックが動いたところで time up。多少の時間オーバーなら応募しようと思ったが、「ぷよ」を消した後落とすことを考えていなかった。うまくすれば 30分ぐらいでできるだろうが、2時間連続の全開走行で頭はオーバーヒート気味だし、「目安として2時間以内」では応募しても無駄だろう。

 続きはあとからゆっくりやろう。

 しかし、これを 30分とか 40分で作るというのは...。自分の普段の仕事がまったく違う畑なことを差っ引いても、まぁ、モンスター級ってことかなぁ...。

 

0 件のコメント: