day 10 done

This commit is contained in:
Tanishq Dubey 2022-12-11 14:57:06 -05:00
parent dc2dd99c2a
commit 8e7247a941
7 changed files with 461 additions and 0 deletions

86
day10/.gitignore vendored Normal file
View File

@ -0,0 +1,86 @@
node_modules/
.node_modules/
built/*
tests/cases/rwc/*
tests/cases/test262/*
tests/cases/perf/*
!tests/cases/webharness/compilerToString.js
test-args.txt
~*.docx
\#*\#
.\#*
tests/baselines/local/*
tests/baselines/local.old/*
tests/services/baselines/local/*
tests/baselines/prototyping/local/*
tests/baselines/rwc/*
tests/baselines/test262/*
tests/baselines/reference/projectOutput/*
tests/baselines/local/projectOutput/*
tests/baselines/reference/testresults.tap
tests/services/baselines/prototyping/local/*
tests/services/browser/typescriptServices.js
src/harness/*.js
src/compiler/diagnosticInformationMap.generated.ts
src/compiler/diagnosticMessages.generated.json
src/parser/diagnosticInformationMap.generated.ts
src/parser/diagnosticMessages.generated.json
rwc-report.html
*.swp
build.json
*.actual
tests/webTestServer.js
tests/webTestServer.js.map
tests/webhost/*.d.ts
tests/webhost/webtsc.js
tests/cases/**/*.js
!tests/cases/docker/*.js/
tests/cases/**/*.js.map
*.config
scripts/eslint/built/
scripts/debug.bat
scripts/run.bat
scripts/**/*.js
scripts/**/*.js.map
coverage/
internal/
**/.DS_Store
.settings
**/.vs
**/.vscode/*
!**/.vscode/tasks.json
!**/.vscode/settings.template.json
!**/.vscode/launch.template.json
!**/.vscode/extensions.json
!tests/cases/projects/projectOption/**/node_modules
!tests/cases/projects/NodeModulesSearch/**/*
!tests/baselines/reference/project/nodeModules*/**/*
.idea
yarn.lock
yarn-error.log
.parallelperf.*
tests/cases/user/*/package-lock.json
tests/cases/user/*/node_modules/
tests/cases/user/*/**/*.js
tests/cases/user/*/**/*.js.map
tests/cases/user/*/**/*.d.ts
!tests/cases/user/zone.js/
!tests/cases/user/bignumber.js/
!tests/cases/user/discord.js/
tests/baselines/reference/dt
.failed-tests
TEST-results.xml
package-lock.json
tests/cases/user/npm/npm
tests/cases/user/TypeScript-React-Starter/TypeScript-React-Starter
tests/cases/user/TypeScript-Node-Starter/TypeScript-Node-Starter
tests/cases/user/TypeScript-React-Native-Starter/TypeScript-React-Native-Starter
tests/cases/user/TypeScript-Vue-Starter/TypeScript-Vue-Starter
tests/cases/user/TypeScript-WeChat-Starter/TypeScript-WeChat-Starter
tests/cases/user/create-react-app/create-react-app
tests/cases/user/fp-ts/fp-ts
tests/cases/user/webpack/webpack
tests/cases/user/puppeteer/puppeteer
tests/cases/user/axios-src/axios-src
tests/cases/user/prettier/prettier
.eslintcache

1
day10/array.txt Normal file
View File

@ -0,0 +1 @@
[["noop"],["addx","15"],["noop"],["addx","-11"],["noop"],["addx","6"],["noop"],["addx","-3"],["noop"],["addx","5"],["noop"],["addx","-1"],["noop"],["addx","-8"],["noop"],["addx","13"],["noop"],["addx","4"],["noop"],["noop"],["addx","-1"],["noop"],["addx","5"],["noop"],["addx","-1"],["noop"],["addx","5"],["noop"],["addx","-1"],["noop"],["addx","5"],["noop"],["addx","-1"],["noop"],["addx","5"],["noop"],["addx","-1"],["noop"],["addx","-35"],["noop"],["addx","1"],["noop"],["addx","24"],["noop"],["addx","-19"],["noop"],["addx","1"],["noop"],["addx","16"],["noop"],["addx","-11"],["noop"],["noop"],["noop"],["addx","21"],["noop"],["addx","-15"],["noop"],["noop"],["noop"],["addx","-3"],["noop"],["addx","9"],["noop"],["addx","1"],["noop"],["addx","-3"],["noop"],["addx","8"],["noop"],["addx","1"],["noop"],["addx","5"],["noop"],["noop"],["noop"],["noop"],["noop"],["noop"],["addx","-36"],["noop"],["noop"],["addx","1"],["noop"],["addx","7"],["noop"],["noop"],["noop"],["noop"],["addx","2"],["noop"],["addx","6"],["noop"],["noop"],["noop"],["noop"],["noop"],["noop"],["addx","1"],["noop"],["noop"],["noop"],["addx","7"],["noop"],["addx","1"],["noop"],["noop"],["addx","-13"],["noop"],["addx","13"],["noop"],["addx","7"],["noop"],["noop"],["addx","1"],["noop"],["addx","-33"],["noop"],["noop"],["noop"],["noop"],["addx","2"],["noop"],["noop"],["noop"],["noop"],["addx","8"],["noop"],["noop"],["addx","-1"],["noop"],["addx","2"],["noop"],["addx","1"],["noop"],["noop"],["addx","17"],["noop"],["addx","-9"],["noop"],["addx","1"],["noop"],["addx","1"],["noop"],["addx","-3"],["noop"],["addx","11"],["noop"],["noop"],["noop"],["addx","1"],["noop"],["noop"],["addx","1"],["noop"],["noop"],["noop"],["addx","-13"],["noop"],["addx","-19"],["noop"],["addx","1"],["noop"],["addx","3"],["noop"],["addx","26"],["noop"],["addx","-30"],["noop"],["addx","12"],["noop"],["addx","-1"],["noop"],["addx","3"],["noop"],["addx","1"],["noop"],["noop"],["noop"],["noop"],["addx","-9"],["noop"],["addx","18"],["noop"],["addx","1"],["noop"],["addx","2"],["noop"],["noop"],["noop"],["addx","9"],["noop"],["noop"],["noop"],["noop"],["addx","-1"],["noop"],["addx","2"],["noop"],["addx","-37"],["noop"],["addx","1"],["noop"],["addx","3"],["noop"],["noop"],["addx","15"],["noop"],["addx","-21"],["noop"],["addx","22"],["noop"],["addx","-6"],["noop"],["addx","1"],["noop"],["noop"],["addx","2"],["noop"],["addx","1"],["noop"],["noop"],["addx","-10"],["noop"],["noop"],["noop"],["addx","20"],["noop"],["addx","1"],["noop"],["addx","2"],["noop"],["addx","2"],["noop"],["addx","-6"],["noop"],["addx","-11"],["noop"],["noop"],["noop"]]

146
day10/inp Normal file
View File

@ -0,0 +1,146 @@
addx 15
addx -11
addx 6
addx -3
addx 5
addx -1
addx -8
addx 13
addx 4
noop
addx -1
addx 5
addx -1
addx 5
addx -1
addx 5
addx -1
addx 5
addx -1
addx -35
addx 1
addx 24
addx -19
addx 1
addx 16
addx -11
noop
noop
addx 21
addx -15
noop
noop
addx -3
addx 9
addx 1
addx -3
addx 8
addx 1
addx 5
noop
noop
noop
noop
noop
addx -36
noop
addx 1
addx 7
noop
noop
noop
addx 2
addx 6
noop
noop
noop
noop
noop
addx 1
noop
noop
addx 7
addx 1
noop
addx -13
addx 13
addx 7
noop
addx 1
addx -33
noop
noop
noop
addx 2
noop
noop
noop
addx 8
noop
addx -1
addx 2
addx 1
noop
addx 17
addx -9
addx 1
addx 1
addx -3
addx 11
noop
noop
addx 1
noop
addx 1
noop
noop
addx -13
addx -19
addx 1
addx 3
addx 26
addx -30
addx 12
addx -1
addx 3
addx 1
noop
noop
noop
addx -9
addx 18
addx 1
addx 2
noop
noop
addx 9
noop
noop
noop
addx -1
addx 2
addx -37
addx 1
addx 3
noop
addx 15
addx -21
addx 22
addx -6
addx 1
noop
addx 2
addx 1
noop
addx -10
noop
noop
addx 20
addx 1
addx 2
addx 2
addx -6
addx -11
noop
noop
noop

141
day10/input Normal file
View File

@ -0,0 +1,141 @@
addx 2
addx 3
addx 3
addx -2
addx 4
noop
addx 1
addx 4
addx 1
noop
addx 4
addx 1
noop
addx 2
addx 5
addx -28
addx 30
noop
addx 5
addx 1
noop
addx -38
noop
noop
noop
noop
addx 5
addx 5
addx 3
addx 2
addx -2
addx 2
noop
noop
addx -2
addx 12
noop
addx 2
addx 3
noop
addx 2
addx -31
addx 32
addx 7
noop
addx -2
addx -37
addx 1
addx 5
addx 1
noop
addx 31
addx -25
addx -10
addx 13
noop
noop
addx 18
addx -11
addx 3
noop
noop
addx 1
addx 4
addx -32
addx 15
addx 24
addx -2
noop
addx -37
noop
noop
noop
addx 5
addx 5
addx 21
addx -20
noop
addx 6
addx 19
addx -5
addx -8
addx -22
addx 26
addx -22
addx 23
addx 2
noop
noop
noop
addx 8
addx -10
addx -27
addx 33
addx -27
noop
addx 34
addx -33
addx 2
addx 19
addx -12
addx 11
addx -20
addx 12
addx 18
addx -11
addx -14
addx 15
addx 2
noop
addx 3
addx 2
noop
noop
noop
addx -33
noop
addx 1
addx 2
noop
addx 3
addx 4
noop
addx 1
addx 2
noop
noop
addx 7
addx 1
noop
addx 4
addx -17
addx 18
addx 5
addx -1
addx 5
addx 1
noop
noop
noop
noop

5
day10/package.json Normal file
View File

@ -0,0 +1,5 @@
{
"devDependencies": {
"@types/node": "^18.11.10"
}
}

75
day10/solution.ts Normal file
View File

@ -0,0 +1,75 @@
import { readFileSync } from 'fs';
import { join } from 'path';
const fileString = readFileSync(join(__dirname, "input"), 'utf-8');
var rows = fileString.split("\n");
rows = rows.map(val => {
return val.trim();
});
rows = rows.filter(val => {
return val.length > 0;
});
// Parse out the instruction into "micro-ops"
var cmds = [];
for (const row of rows) {
const inst = row.split(" ");
switch(inst[0]) {
case "noop":
cmds.push(inst);
break;
case "addx":
cmds.push(["noop"]);
cmds.push(inst);
break;
}
}
console.log(cmds);
console.log(cmds.length);
const breakpoints = [20, 60, 100, 140, 180, 220];
// Start the VM
var sums = [];
var reg_X = 1;
var crt_pos = 1;
for (var i = 0; i < cmds.length; i++) {
const cmd = cmds[i];
if (breakpoints.indexOf(i + 1) > -1) {
sums.push(reg_X * (i + 1));
}
switch(cmd[0]) {
case "noop":
break;
case "addx":
reg_X += +cmd[1];
break;
}
// Do TV drawing
if (crt_pos > 40) {
process.stdout.write("\n");
crt_pos = 1;
}
if (crt_pos >= (reg_X - 1) && (crt_pos <= (reg_X + 1))) {
//console.log("cursor: ", crt_pos, " reg ", reg_X, i, cmd);
process.stdout.write("#");
} else {
//console.log("cursor: ", crt_pos, " reg ", reg_X, crt_pos > reg_X - 1, crt_pos < reg_X + 1, cmd);
process.stdout.write(".");
}
crt_pos += 1;
}
process.stdout.write("\n");
console.log(sums.reduce((a, b) => {
return a + b;
}));

7
day10/tsconfig.json Normal file
View File

@ -0,0 +1,7 @@
{
"compilerOptions": {
"types": [
"node"
]
}
}