fix display bug in part2
This commit is contained in:
parent
100be8c55f
commit
b3476976da
1 changed files with 160 additions and 5 deletions
|
@ -110,13 +110,13 @@ fn part1(input: &Vm) -> i32 {
|
||||||
#[aoc_run(day10, part2)]
|
#[aoc_run(day10, part2)]
|
||||||
fn part2(input: &Vm) -> String {
|
fn part2(input: &Vm) -> String {
|
||||||
let mut vm = input.clone();
|
let mut vm = input.clone();
|
||||||
let mut crt = vec![vec![' '; 40]; 6];
|
let mut crt = vec![vec!['.'; 40]; 6];
|
||||||
|
|
||||||
for _ in 0..240 {
|
for _ in 0..240 {
|
||||||
let (cycle, x) = vm.run();
|
let (cycle, x) = vm.run();
|
||||||
|
let x = (x - 1)..=(x + 1);
|
||||||
let (row, col) = cycle2beam(cycle);
|
let (row, col) = cycle2beam(cycle);
|
||||||
let diff = (x.abs() - col as i32).abs();
|
if x.contains(&(col as i32)) {
|
||||||
if diff < 2 {
|
|
||||||
crt[row][col] = '#';
|
crt[row][col] = '#';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -299,9 +299,164 @@ noop";
|
||||||
####....####....####....####....####....
|
####....####....####....####....####....
|
||||||
#####.....#####.....#####.....#####.....
|
#####.....#####.....#####.....#####.....
|
||||||
######......######......######......####
|
######......######......######......####
|
||||||
#######.......#######.......#######.....";
|
#######.......#######.......#######.....
|
||||||
|
";
|
||||||
let out = part2(&vm);
|
let out = part2(&vm);
|
||||||
println!("{}", &out);
|
println!("{}", &out);
|
||||||
assert_eq!(&out.trim(), &expected.trim());
|
assert_eq!(&out, &expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn p2_alt_test() {
|
||||||
|
let input = "noop
|
||||||
|
addx 10
|
||||||
|
addx -4
|
||||||
|
addx -1
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 5
|
||||||
|
addx -12
|
||||||
|
addx 17
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 7
|
||||||
|
addx 3
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
addx -38
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
addx 3
|
||||||
|
addx -2
|
||||||
|
addx 2
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
addx -4
|
||||||
|
addx 26
|
||||||
|
addx -19
|
||||||
|
addx 2
|
||||||
|
addx 5
|
||||||
|
addx -2
|
||||||
|
addx 7
|
||||||
|
addx -2
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
addx 4
|
||||||
|
addx -17
|
||||||
|
addx -23
|
||||||
|
addx 1
|
||||||
|
addx 5
|
||||||
|
addx 3
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
addx 24
|
||||||
|
addx 4
|
||||||
|
addx -23
|
||||||
|
noop
|
||||||
|
addx 5
|
||||||
|
addx -1
|
||||||
|
addx 6
|
||||||
|
noop
|
||||||
|
addx -2
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 7
|
||||||
|
addx 1
|
||||||
|
addx 4
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx -37
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
addx 4
|
||||||
|
addx -2
|
||||||
|
addx -4
|
||||||
|
addx 9
|
||||||
|
addx 7
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
addx 3
|
||||||
|
addx -2
|
||||||
|
noop
|
||||||
|
addx -12
|
||||||
|
addx 17
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx 2
|
||||||
|
addx -3
|
||||||
|
addx -30
|
||||||
|
addx 3
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
addx 3
|
||||||
|
addx -2
|
||||||
|
addx 2
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
addx 11
|
||||||
|
addx -6
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
addx -19
|
||||||
|
addx 20
|
||||||
|
addx -7
|
||||||
|
addx 14
|
||||||
|
addx 8
|
||||||
|
addx -7
|
||||||
|
addx 2
|
||||||
|
addx -26
|
||||||
|
addx -7
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 5
|
||||||
|
addx -2
|
||||||
|
addx 5
|
||||||
|
addx 15
|
||||||
|
addx -13
|
||||||
|
addx 5
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
addx 4
|
||||||
|
addx 3
|
||||||
|
addx -2
|
||||||
|
addx 4
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop";
|
||||||
|
let mut vm = parse_input(input);
|
||||||
|
let out = part2(&vm);
|
||||||
|
let expected = "
|
||||||
|
###...##...##..####.#..#.#....#..#.####.
|
||||||
|
#..#.#..#.#..#.#....#.#..#....#..#.#....
|
||||||
|
###..#..#.#....###..##...#....####.###..
|
||||||
|
#..#.####.#....#....#.#..#....#..#.#....
|
||||||
|
#..#.#..#.#..#.#....#.#..#....#..#.#....
|
||||||
|
###..#..#..##..####.#..#.####.#..#.#....
|
||||||
|
";
|
||||||
|
assert_eq!(out, expected);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue