回答編集履歴

1

座標による詰み

2018/06/21 03:55

投稿

think49
think49

スコア18164

test CHANGED
@@ -1,3 +1,7 @@
1
+ ### 総当たり
2
+
3
+
4
+
1
5
  総当たりでもいいと思いますが、
2
6
 
3
7
 
@@ -16,6 +20,10 @@
16
20
 
17
21
 
18
22
 
23
+ ### 三手先をシミュレーション
24
+
25
+
26
+
19
27
  三手先をシミュレーションすると、直前の二手によって、移動先の「左上」「下」「右」の中で**移動できない選択肢**がある事に気が付きます。
20
28
 
21
29
 
@@ -30,4 +38,38 @@
30
38
 
31
39
 
32
40
 
41
+ > 2手前の移動方向と1手前の移動方向が異なる時,この2つに使われていない移動方向に移動することが出来ないですね(すでに訪問済みであるため)。
42
+
43
+
44
+
45
+ そうですね。
46
+
47
+
48
+
49
+ - 直前のニ手を変数で持っておく
50
+
51
+ - 移動可能な方向を変数で持っておく `['left-up', 'right', 'down']`
52
+
53
+
54
+
55
+ このようにすれば、変数値を変更する事で移動可能な方向を制御出来ます。
56
+
57
+
58
+
59
+ ### 座標による詰み
60
+
61
+
62
+
63
+ 例えば、上から3行目の左端から右端まで、右方向に移動し続けたとします。
64
+
65
+ 次に「左上」に移動すれば、3行目より下に行けなくなり、「下」に移動すれば、3行目より上に行けなくなります。
66
+
67
+ つまり、同一行で全ての列が通過済の状況になると、上下のどちらかの全座標が通過済でない限りは詰みます。
68
+
69
+ 各行の通過済の列数を記録しておけば、このような事態は防げます。
70
+
71
+ 列に関しても、同様ですね。
72
+
73
+
74
+
33
75
  Re: okamot さん