回答編集履歴
4
文言
test
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
|
10
10
|
追記2: 実装しようとしいるアプローチをちょっと考察してみたんですが、このアプローチではぷよぷよと全く同じにはならないですよね。
|
11
11
|
* 1連鎖目で最大8ぷよが消えるはずです。4で止めてはいけないです。2連鎖目以降はもっと同時に消える気がします。
|
12
|
-
* 図2のようなケースで無限ループに陥りそうです。
|
12
|
+
* かといって、4個制限を外すと図2のようなケースで無限ループに陥りそうです。
|
13
13
|
|
14
14
|
図1: 8個消える
|
15
15
|
```
|
3
文言
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
----
|
9
9
|
|
10
10
|
追記2: 実装しようとしいるアプローチをちょっと考察してみたんですが、このアプローチではぷよぷよと全く同じにはならないですよね。
|
11
|
-
* 1
|
11
|
+
* 1連鎖目で最大8ぷよが消えるはずです。4で止めてはいけないです。2連鎖目以降はもっと同時に消える気がします。
|
12
12
|
* 図2のようなケースで無限ループに陥りそうです。
|
13
13
|
|
14
14
|
図1: 8個消える
|
2
アプローチの考察
test
CHANGED
@@ -5,3 +5,21 @@
|
|
5
5
|
ぱっと見では、「関数内で `pos` と `vec` は常に同じ値のはずななのになんで `(vec.y != pos.y)` という条件が付けられているんだろう?」 と疑問に思いました。
|
6
6
|
追記: ↑`Clear()`から呼ぶときは異なる値で、再帰するときは同じ値みたいですね。
|
7
7
|
|
8
|
+
----
|
9
|
+
|
10
|
+
追記2: 実装しようとしいるアプローチをちょっと考察してみたんですが、このアプローチではぷよぷよと全く同じにはならないですよね。
|
11
|
+
* 1ステップで最大8ぷよが消えるはずです。4で止めてはいけないです。図1
|
12
|
+
* 図2のようなケースで無限ループに陥りそうです。
|
13
|
+
|
14
|
+
図1: 8個消える
|
15
|
+
```
|
16
|
+
🟢🟢
|
17
|
+
⬇⬇
|
18
|
+
🟢🟢🟢 🟢🟢🟢
|
19
|
+
```
|
20
|
+
図2: ループのおそれ
|
21
|
+
```
|
22
|
+
🟢🟢
|
23
|
+
🟢🟢
|
24
|
+
```
|
25
|
+
|
1
追記
test
CHANGED
@@ -3,5 +3,5 @@
|
|
3
3
|
1以外の値が表示されるはずの小さい`board`のテストデータを用意して、ブラウザの開発者ツールで `ComboCheck()` の冒頭にブレークポイントを仕掛けてステップ実行して、自分の期待通りの動作になっていない箇所を見つけてください。
|
4
4
|
|
5
5
|
ぱっと見では、「関数内で `pos` と `vec` は常に同じ値のはずななのになんで `(vec.y != pos.y)` という条件が付けられているんだろう?」 と疑問に思いました。
|
6
|
+
追記: ↑`Clear()`から呼ぶときは異なる値で、再帰するときは同じ値みたいですね。
|
6
7
|
|
7
|
-
|