回答編集履歴
1
座標による詰み
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 さん
|