はじめに
毎月第二土曜日ぐらいにYokohama.rbという地域Rubyコミュニティを開催しています。ここ最近、レシピブック読書会を @igrep さんと @nabetani さんに丸投げしていていました。
- 作者: 青木峰郎,後藤裕蔵,高橋征義
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2013/08/14
- メディア: Kindle版
- この商品を含むブログを見る
このままの状況、運営としてはイケてない!と感じ新しいコンテンツを探そうと思っていたところ、 @nabetani さんから「どう書く」のYokohama.rb版を提供して頂けることになり、早速試してみました。結局人様に頼りっきりで申し訳ないんですが...
@miyohide 問題用意しましょうか?(どたきゃんですいませんでした)
— 鍋谷 武典 (@Nabetani) 2016年6月12日
今回の問題
自分の戦略
ポイントは、画像で表現されているタイルをどのようにプログラムとして表現するか。ここがいろいろと悩みましたが、自分は「上辺のものはどこに移動するか」「左辺のものはどこに移動するか」...という形でHashで表現しました。こんな感じ。
Tiles = [ {top: :left, left: :top, right: :down, down: :right}, {top: :right, left: :down, right: :top, down: :left}, {top: :down, left: :right, right: :left, down: :top}, {top: :death, left: :death, right: :death, down: :death} ]
あとは、入力文字列をParseしてフィールドを作り、枠外もしくは行き先がdeathに行ったら処理終了という流れでベタに書きました。それが次のコード。
わかりやすいコードを書くことを心掛けているので、多少長いのはしょうがないのですが、流石に長過ぎるのでもうちょっとあがいてみます。