(問題)
下図の迷路で、与えられた命令数で「始」から「終」まで自動的に進むことのできるロボットのプログラムを考えてください。
ただし、プログラムで使うことのできる命令は、右(右に1マス進む)、左(左に1マス進む)、上(上に1マス進む)、下(下に1マス進む)の4種類だけであり、プログラムは自動的にループする(最初に与えられた命令の最後まで来たら、自動的に最初に戻って繰り返す)ものとします。また、ロボットは迷路の外周や仕切り線を超えては進むことができず、そちらに進む命令が出た場合には、その場に立ち止まります。
┏━┳━┳━┳━┳━┳━┓ ┃ ┃ 終┃ ┣━╋ ╋━╋ ╋━╋ ┫ ┃ ┃ ┃ ┣ ╋ ╋ ╋ ╋ ╋ ┫ ┃ ┃ ┣ ╋ ╋ ╋ ╋━╋━┫ ┃ ┃ ┃ ┃ ┣ ╋━╋ ╋ ╋━╋━┫ ┃ ┃ ┃ ┃ ┣ ╋━╋ ╋ ╋ ╋ ┫ ┃始 ┃ ┃ ┗━┻━┻━┻━┻━┻━┛
プログラム:4命令
支援ツール独立画面へ
ページ: 1 2
上上下右
× × × ×┃× 終
━ ━ ━ |
× × × ○ ○┃○
| | |
× × ○ ○―○―○
| | ━ ━
○┃×┃○―○ × ×
| ━ | ━ ━
○―○―○ ×┃×┃×
| ━
始 × ×┃× × ×
time=01:31
上上下右
× × × ×┃× 終
━ ━ ━ |
× × × ○ ○┃○
| | |
× × ○ ○―○―○
| | ━ ━
○┃×┃○―○ × ×
| ━ | ━ ━
○―○―○ ×┃×┃×
| ━
始 × ×┃× × ×
time=19:44
上上下右
× × × ×┃× 終
━ ━ ━ |
× × × ○ ○┃○
| | |
× × ○ ○―○―○
| | ━ ━
○┃×┃○―○ × ×
| ━ | ━ ━
○―○―○ ×┃×┃×
| ━
始 × ×┃× × ×
time=00:29
スタートのすぐ上にあるU字型の部分をどっちに避けるかですが、
最初右に避けたところ、右辺中段部分に捕まるのを避けるためには
「左上」が必要、一方ゴールへの入口部分では「左上」が不都合で
す。
左側に避けたところ、一発でできました。
上上下右
× × × ×┃× 終
━ ━ ━ |
× × × ○ ○┃○
| | |
× × ○ ○―○―○
| | ━ ━
○┃×┃○―○ × ×
| ━ | ━ ━
○―○―○ ×┃×┃×
| ━
始 × ×┃× × ×
time=00:36