回答編集履歴

2

動作を確認

2019/01/30 15:05

投稿

pepperleaf
pepperleaf

スコア6383

test CHANGED
@@ -19,3 +19,19 @@
19
19
  ...と初期データを見ると、スタートから、スタートに戻ってくるループがある。
20
20
 
21
21
  これを弾くようにしないと無限ループ。。正確には、同じ場所を二度通らないようにする必要があります。
22
+
23
+
24
+
25
+ passMap() の引数に route を追加し、最初のif 文の中を以下のようにして、動作を確認。
26
+
27
+ (searchRoute()にも範囲外チェック追加あり)
28
+
29
+ ```C++
30
+
31
+ if (0 <= x && x < MAP_SIZE && 0 <= y && y < MAP_SIZE) {
32
+
33
+ return ((map[y][x] != 1) && (route[y][x] != 1));
34
+
35
+ ```
36
+
37
+ 遠回りなルートを通っていますが、一応、ゴールまで行くみたい。

1

追加情報

2019/01/30 15:05

投稿

pepperleaf
pepperleaf

スコア6383

test CHANGED
@@ -9,3 +9,13 @@
9
9
  ソースを見直してみると、sx, sy の範囲チェックが無いですね。
10
10
 
11
11
  きっとメモリを壊しているのでしょう。
12
+
13
+
14
+
15
+ [追記]
16
+
17
+ 範囲外を除くようにしてみましたが、やはり、再帰が終わらないようです。
18
+
19
+ ...と初期データを見ると、スタートから、スタートに戻ってくるループがある。
20
+
21
+ これを弾くようにしないと無限ループ。。正確には、同じ場所を二度通らないようにする必要があります。