回答編集履歴

4

文言

2022/01/13 13:28

投稿

int32_t
int32_t

スコア20914

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

文言

2022/01/13 13:17

投稿

int32_t
int32_t

スコア20914

test CHANGED
@@ -8,7 +8,7 @@
8
8
  ----
9
9
 
10
10
  追記2: 実装しようとしいるアプローチをちょっと考察してみたんですが、このアプローチではぷよぷよと全く同じにはならないですよね。
11
- * 1ステップで最大8ぷよが消えるはずです。4で止めてはいけないです。図1
11
+ * 1連鎖目で最大8ぷよが消えるはずです。4で止めてはいけないです。2連鎖目以降はもっと同時に消える気がします。
12
12
  * 図2のようなケースで無限ループに陥りそうです。
13
13
 
14
14
  図1: 8個消える

2

アプローチの考察

2022/01/13 13:15

投稿

int32_t
int32_t

スコア20914

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

追記

2022/01/13 05:36

投稿

int32_t
int32_t

スコア20914

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
-