prettier
This commit is contained in:
parent
e38aec3c69
commit
03a0bc7836
@ -73,10 +73,14 @@ export function generateVisibilityGrid(forest) {
|
|||||||
export const puzzleInput = readInput(import.meta.url, "input");
|
export const puzzleInput = readInput(import.meta.url, "input");
|
||||||
export const sample = readInput(import.meta.url, "sample");
|
export const sample = readInput(import.meta.url, "sample");
|
||||||
|
|
||||||
export function printMap(forest) {
|
export const passthru = (func) => (arg) => {
|
||||||
forest.forEach((line) => console.log(line.join(" ")));
|
func(arg);
|
||||||
return forest;
|
return arg;
|
||||||
}
|
};
|
||||||
|
|
||||||
|
export const printMap = passthru((forest) =>
|
||||||
|
forest.forEach((line) => console.log(line.join(" ")))
|
||||||
|
);
|
||||||
|
|
||||||
export default R.createPipe(
|
export default R.createPipe(
|
||||||
generateVisibilityGrid,
|
generateVisibilityGrid,
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
import * as R from "remeda";
|
import * as R from "remeda";
|
||||||
import memo from "memoizerific";
|
|
||||||
import Victor from "@a-robu/victor";
|
import Victor from "@a-robu/victor";
|
||||||
|
|
||||||
import { printMap, outOfBound } from "./part1";
|
import { outOfBound } from "./part1";
|
||||||
|
|
||||||
const V = (...args) => new Victor(...args);
|
const V = (...args) => new Victor(...args);
|
||||||
|
|
||||||
@ -21,8 +20,8 @@ function visibility(forest, x, y, dx, dy) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const visibilityAround = (forest) => (x, y) => {
|
const visibilityAround = (forest) => (x, y) =>
|
||||||
return [
|
[
|
||||||
[0, 1],
|
[0, 1],
|
||||||
[0, -1],
|
[0, -1],
|
||||||
[1, 0],
|
[1, 0],
|
||||||
@ -30,20 +29,11 @@ const visibilityAround = (forest) => (x, y) => {
|
|||||||
]
|
]
|
||||||
.map((d) => visibility(forest, x, y, ...d))
|
.map((d) => visibility(forest, x, y, ...d))
|
||||||
.reduce((a, b) => a * b);
|
.reduce((a, b) => a * b);
|
||||||
};
|
|
||||||
|
|
||||||
export default R.createPipe(
|
export default R.createPipe(
|
||||||
(forest) => {
|
(forest) => {
|
||||||
const viz = Array(forest.length)
|
const va = visibilityAround(forest);
|
||||||
.fill(null)
|
return forest.map((l, x) => l.map((_, y) => va(x, y)));
|
||||||
.map(() => Array(forest.length).fill(0));
|
|
||||||
|
|
||||||
for (const x of R.range(0, forest.length)) {
|
|
||||||
for (const y of R.range(0, forest.length)) {
|
|
||||||
viz[x][y] = visibilityAround(forest)(x, y);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return viz;
|
|
||||||
},
|
},
|
||||||
R.flatten,
|
R.flatten,
|
||||||
R.maxBy(R.identity)
|
R.maxBy(R.identity)
|
||||||
|
Loading…
Reference in New Issue
Block a user