Coding_Gamesメモ_A_child's_play

javaの学習にCoding_Games を知り、学習の記録としてメモ。
To debug:

System.err.println( );

を使うとデバックしやすくなる。(エラー出力は評価に影響しない)

内容

障害物に当たると右折するロボットが最終的に何処にいるのか予測する。

ルール

幅 w ,奥行き h のマップ内で1ターンに1マス直進するロボットがnターン後にどこにいるか出力する

ロボットの行動

  • 障害物(#)に遭遇すると右折する(進行方向を変えて1マス進む)
  • 障害物が無ければ(.)直進する
  • 最初は上向きに進む
  • nターン後停止する

インプット

1行目 マップの幅(w) 奥行き(h)
2行目 ロボットの行動ターン数(Max 253-1 回)
3行目から ロボットが行動するマップ ロボットの初期位置はO で表される

アウトプット

左上隅を0,0 から数え、横にx マス、縦にy マスをx yの形式で出力

考え方
Boolean配列でマップを作り、移動させると、2020000ターンほどでタイムアウトのエラーが出てしまう。
最初のターン以外でロボットがスタート位置にいて、上に進もうとしていたらループしているので、計算で処理を省くことができる

Coding_Games:https://www.codingame.com/