-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.ts
More file actions
44 lines (37 loc) · 1.25 KB
/
script.ts
File metadata and controls
44 lines (37 loc) · 1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
window.onload = () => {
setHexGrid("hex-grid");
};
function setHexGrid(id: string) {
const gridMap = document.getElementById(id) as HTMLDivElement;
const column = parseInt(gridMap.dataset["column"]) ?? 10;
const row = parseInt(gridMap.dataset["row"]) ?? 5;
for (let r = 0; r < row; r++) {
const rowClsDiv = document.createElement("div");
rowClsDiv.classList.add("row");
rowClsDiv.setAttribute("data-row", r.toString());
let offset = 0;
if (r % 2 != 0) {
rowClsDiv.classList.add("even");
offset = 1;
}
for (let c = 0; c < column - offset; c++) {
const hexDiv = createHexDivElement();
hexDiv.classList.add("hex");
hexDiv.setAttribute("data-column", c.toString());
rowClsDiv.appendChild(hexDiv);
}
gridMap.appendChild(rowClsDiv);
}
}
function createHexDivElement() {
const hexDiv = document.createElement("div");
hexDiv.appendChild(createHaveClassDivElement("top"));
hexDiv.appendChild(createHaveClassDivElement("middle"));
hexDiv.appendChild(createHaveClassDivElement("bottom"));
return hexDiv;
}
function createHaveClassDivElement(name: string) {
const div = document.createElement("div");
div.classList.add(name);
return div;
}