Skip to content

Commit 11425bd

Browse files
committed
10 part2
1 parent 7cb0971 commit 11425bd

File tree

1 file changed

+32
-15
lines changed

1 file changed

+32
-15
lines changed

src/10/solve.ts

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@ class Solve10 extends FileReader {
99
})
1010
.catch((err) => console.log(err));
1111
}
12+
screenW = 40
13+
screenH = 6
14+
screen: Array<Array<string>> = new Array(this.screenH)
15+
printScreen = () => {
16+
for (let i=0;i<this.screenH;i++) {
17+
console.log(this.screen[i].join(''))
18+
}
19+
}
1220

1321
process = (data: string[]) => {
1422
let pc = 0
@@ -17,30 +25,39 @@ class Solve10 extends FileReader {
1725
let hold = false
1826
let param: number | undefined = undefined
1927
let result = 0
20-
28+
29+
for (let i=0;i<this.screenH;i++) {
30+
this.screen[i] = new Array(this.screenW).fill('.')
31+
}
32+
2133
while (hold || pc < data.length) {
22-
cycles+=1
23-
if ((cycles - 20) % 40 === 0) {
24-
result += cycles * X
34+
let crtPos = cycles % 40 + 1
35+
let crtRow = Math.floor(cycles / 40)
36+
cycles+=1
37+
if ((cycles - 20) % 40 === 0) {
38+
result += cycles * X
39+
}
40+
if (crtPos >= X && crtPos < X + 3) {
41+
this.screen[crtRow][crtPos - 1] = "#"
42+
}
43+
if (hold) {
44+
if (param !== undefined) {
45+
X += param
2546
}
26-
27-
if (hold) {
28-
if (param !== undefined) {
29-
X += param
30-
}
3147
hold = false
32-
} else {
48+
} else {
3349
const row = data[pc++]
3450
const tmp = row.split(' ')
3551
const op = tmp[0]
3652
if ("addx" === op) {
37-
param = parseInt(tmp[1], 10)
38-
hold = true
53+
param = parseInt(tmp[1], 10)
54+
hold = true
3955
}
56+
}
4057
}
41-
}
42-
console.log(result)
43-
};
58+
console.log(result)
59+
this.printScreen()
60+
};
4461
}
4562

4663
new Solve10();

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy