2009-04-13 ,

JavaScript倉庫番の問題を作る

というわけで、一応動くようになったわけですが、別に倉庫番がやりたかったわけではなくて、倉庫番の問題を作りたかったんですね。倉庫番の問題というのはどうやって作るのか。どんな問題が良くて、どんな問題が良くないのか。

とりあえず一番単純なの。プレイは枠内をクリック。

########
#O B @ #
########

単純すぎ。

適当に五つほど箱を置いてみた。

##############
#OO   #   OOO#
####  B  #   #
#  #  ###  B##
# B#   #     #
#    @ #  #  #
#  ### #B #B #
#         #  #
##############

うーん、クリア不可能だ(と思う)。あと、やはり単純というか、すぐに結果が見えてしまうところも気になる。

ここで、最初から作り直すか、それとも、修正してみるか。

##############
#OO   #   OOO#
# ##  B  #   #
#  #  ###  B##
# B#   #     #
#    @    #  #
#  ### #B #B #
#         #  #
##############

クリアできるように修正してみた。壁に一つ穴を開けてはプレイしてクリアできるかどうか考えた。二つ開けて箱を動かしながら少し考えた時点でクリアできることに気がついた。気がつくとちょっと嬉しい。意外と難しくね?

というわけで、今日発見した制作メソッド。

  1. 適当に配置してクリアできない状況を作る。
  2. 任意の考慮時間N[秒]を決める。
  3. 壁に穴を一つ開ける。
  4. クリアできるかどうか、N秒間考える。
  5. N秒経ってもクリアできなければ3へ。
  6. クリアできたら難易度N[秒]の問題(俺基準)が完成。