回答編集履歴
6
バグ修正( w: height を w: width に)
test
CHANGED
@@ -40,7 +40,7 @@
|
|
40
40
|
};
|
41
41
|
|
42
42
|
const debugChunk = (width, height) => {
|
43
|
-
const dangeon = splitDangeon([{x: 0, y: 0, w:
|
43
|
+
const dangeon = splitDangeon([{x: 0, y: 0, w: width, h: height}]);
|
44
44
|
console.log(dangeon);
|
45
45
|
};
|
46
46
|
|
5
空白調整
test
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
return chunk;
|
29
29
|
splitChunks = [
|
30
30
|
{ x: chunk.x, y: chunk.y, w: chunk.w, h: splitY },
|
31
|
-
{ x: chunk.x, y: splitY, w: chunk.w, h: height },
|
31
|
+
{ x: chunk.x, y: splitY, w: chunk.w, h: height },
|
32
32
|
]
|
33
33
|
}
|
34
34
|
if (--divide > 0) {
|
4
空白調整
test
CHANGED
@@ -17,7 +17,7 @@
|
|
17
17
|
return chunk;
|
18
18
|
splitChunks = [
|
19
19
|
{ x: chunk.x, y: chunk.y, w: splitX, h: chunk.h },
|
20
|
-
{ x: splitX, y: chunk.y, w: width, h: chunk.h },
|
20
|
+
{ x: splitX, y: chunk.y, w: width, h: chunk.h },
|
21
21
|
];
|
22
22
|
} else { //横
|
23
23
|
let splitY = CHUNK_SPLIT_MIN;
|
3
変数名スペルミス修正
test
CHANGED
@@ -17,7 +17,7 @@
|
|
17
17
|
return chunk;
|
18
18
|
splitChunks = [
|
19
19
|
{ x: chunk.x, y: chunk.y, w: splitX, h: chunk.h },
|
20
|
-
{ x: splitX,
|
20
|
+
{ x: splitX, y: chunk.y, w: width, h: chunk.h },
|
21
21
|
];
|
22
22
|
} else { //横
|
23
23
|
let splitY = CHUNK_SPLIT_MIN;
|
@@ -28,7 +28,7 @@
|
|
28
28
|
return chunk;
|
29
29
|
splitChunks = [
|
30
30
|
{ x: chunk.x, y: chunk.y, w: chunk.w, h: splitY },
|
31
|
-
{ x: chunk.x, y: splitY,
|
31
|
+
{ x: chunk.x, y: splitY, w: chunk.w, h: height },
|
32
32
|
]
|
33
33
|
}
|
34
34
|
if (--divide > 0) {
|
@@ -40,9 +40,8 @@
|
|
40
40
|
};
|
41
41
|
|
42
42
|
const debugChunk = (width, height) => {
|
43
|
-
const dange
|
43
|
+
const dangeon = splitDangeon([{x: 0, y: 0, w: height, h: height}]);
|
44
|
-
console.log(dange
|
44
|
+
console.log(dangeon);
|
45
|
-
console.log('\n');
|
46
45
|
};
|
47
46
|
|
48
47
|
debugChunk(16, 16);
|
2
空白調整
test
CHANGED
@@ -17,7 +17,7 @@
|
|
17
17
|
return chunk;
|
18
18
|
splitChunks = [
|
19
19
|
{ x: chunk.x, y: chunk.y, w: splitX, h: chunk.h },
|
20
|
-
{ x: splitX, y: chunk.y, w: width, h: chunk.h },
|
20
|
+
{ x: splitX, y: chunk.y, w: width, h: chunk.h },
|
21
21
|
];
|
22
22
|
} else { //横
|
23
23
|
let splitY = CHUNK_SPLIT_MIN;
|
@@ -28,7 +28,7 @@
|
|
28
28
|
return chunk;
|
29
29
|
splitChunks = [
|
30
30
|
{ x: chunk.x, y: chunk.y, w: chunk.w, h: splitY },
|
31
|
-
{ x: chunk.x, y: splitY, w: chunk.w, h: height },
|
31
|
+
{ x: chunk.x, y: splitY, w: chunk.w, h: height },
|
32
32
|
]
|
33
33
|
}
|
34
34
|
if (--divide > 0) {
|
1
変数名変更
test
CHANGED
@@ -5,36 +5,36 @@
|
|
5
5
|
|
6
6
|
const CHUNK_SPLIT_MIN = 4;
|
7
7
|
|
8
|
-
const splitDangeon = (
|
8
|
+
const splitDangeon = (chunks, divide = 10) => {
|
9
|
-
return
|
9
|
+
return chunks.flatMap(chunk => {
|
10
|
-
let split
|
10
|
+
let splitChunks;
|
11
11
|
if (Math.random() > 0.5) { //縦
|
12
12
|
let splitX = CHUNK_SPLIT_MIN;
|
13
13
|
for (let i = 0; Math.random() > i; i += 0.1)
|
14
14
|
splitX++;
|
15
|
-
const width =
|
15
|
+
const width = chunk.w - splitX;
|
16
16
|
if (width <= CHUNK_SPLIT_MIN)
|
17
|
-
return
|
17
|
+
return chunk;
|
18
|
-
split
|
18
|
+
splitChunks = [
|
19
|
-
{ x:
|
19
|
+
{ x: chunk.x, y: chunk.y, w: splitX, h: chunk.h },
|
20
|
-
{ x: splitX, y:
|
20
|
+
{ x: splitX, y: chunk.y, w: width, h: chunk.h },
|
21
21
|
];
|
22
22
|
} else { //横
|
23
23
|
let splitY = CHUNK_SPLIT_MIN;
|
24
24
|
for (let i = 0; Math.random() > i; i += 0.1)
|
25
25
|
splitY++;
|
26
|
-
const height =
|
26
|
+
const height = chunk.h - splitY;
|
27
27
|
if (height <= CHUNK_SPLIT_MIN)
|
28
|
-
return
|
28
|
+
return chunk;
|
29
|
-
split
|
29
|
+
splitChunks = [
|
30
|
-
{ x:
|
30
|
+
{ x: chunk.x, y: chunk.y, w: chunk.w, h: splitY },
|
31
|
-
{ x:
|
31
|
+
{ x: chunk.x, y: splitY, w: chunk.w, h: height },
|
32
32
|
]
|
33
33
|
}
|
34
34
|
if (--divide > 0) {
|
35
|
-
return splitDangeon(split
|
35
|
+
return splitDangeon(splitChunks, divide);
|
36
36
|
} else {
|
37
|
-
return split
|
37
|
+
return splitChunks;
|
38
38
|
}
|
39
39
|
});
|
40
40
|
};
|