Rails on Tiles 〜 横へな 2012.11.9の参考問題

問題

レールの書かれたタイルがある。レールにそって進んだ場合に通過するタイルの位置を計算する。
入力は、タイルの名前(タイルの名前は 0, 1, 2 のいずれか)を左上から順に並べた、 101221102 のような9 文字の文字列。タイルの名前と形状の関係は下図の通り:

名前 0 1 2
形状

入力 101221102 は、下図のようなタイルの配置を意味する。
スタートは、B のマスの上からとする。
この場合 B→E→D→G→H→I→F→E→H の順に移動したところでマスの外に出てしまう。
したがって、 BEDGHIFEH という文字列を出力すればよい。

 A B C
 D E F
 G H I

実装ができた方は Qiitaの記事 のコメント欄からリンクを張っていただくと見つけやすくて助かります。

サンプルデータ

# 入力 期待
#0 101221102 BEDGHIFEH
#1 000000000 BEH
#2 111111111 BCF
#3 222222222 BAD
#4 000211112 BEFIHEDGH
#5 221011102 BADGHIFEBCF
#6 201100112 BEHIFCBADEF
#7 000111222 BEFIH
#8 012012012 BC
#9 201120111 BEDABCFI
#10 220111122 BADEHGD
#11 221011022 BADG
#12 111000112 BCFIHEBA
#13 001211001 BEFI
#14 111222012 BCFEHIF
#15 220111211 BADEHI
#16 211212212 BCFEBAD
#17 002112210 BEFC
#18 001010221 BEF
#19 100211002 BEFIHG
#20 201212121 BEFCBAD