Solve 2021/11
parent
092a1b2162
commit
e5673d55d8
@ -0,0 +1,7 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "day11"
|
||||
version = "0.1.0"
|
@ -0,0 +1,8 @@
|
||||
[package]
|
||||
name = "day11"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
@ -0,0 +1,332 @@
|
||||
https://adventofcode.com/2021/day/11
|
||||
|
||||
## \--- Day 11: Dumbo Octopus ---
|
||||
|
||||
You enter a large cavern full of rare bioluminescent [dumbo
|
||||
octopuses](https://www.youtube.com/watch?v=eih-VSaS2g0)! They seem to not like
|
||||
the Christmas lights on your submarine, so you turn them off for now.
|
||||
|
||||
There are 100 octopuses arranged neatly in a 10 by 10 grid. Each octopus
|
||||
slowly gains _energy_ over time and _flashes_ brightly for a moment when its
|
||||
energy is full. Although your lights are off, maybe you could navigate through
|
||||
the cave without disturbing the octopuses if you could predict when the
|
||||
flashes of light will happen.
|
||||
|
||||
Each octopus has an _energy level_ \- your submarine can remotely measure the
|
||||
energy level of each octopus (your puzzle input). For example:
|
||||
|
||||
[code]
|
||||
|
||||
5483143223
|
||||
2745854711
|
||||
5264556173
|
||||
6141336146
|
||||
6357385478
|
||||
4167524645
|
||||
2176841721
|
||||
6882881134
|
||||
4846848554
|
||||
5283751526
|
||||
|
||||
[/code]
|
||||
|
||||
The energy level of each octopus is a value between `0` and `9`. Here, the
|
||||
top-left octopus has an energy level of `5`, the bottom-right one has an
|
||||
energy level of `6`, and so on.
|
||||
|
||||
You can model the energy levels and flashes of light in _steps_. During a
|
||||
single step, the following occurs:
|
||||
|
||||
* First, the energy level of each octopus increases by `1`.
|
||||
* Then, any octopus with an energy level greater than `9` _flashes_. This increases the energy level of all adjacent octopuses by `1`, including octopuses that are diagonally adjacent. If this causes an octopus to have an energy level greater than `9`, it _also flashes_. This process continues as long as new octopuses keep having their energy level increased beyond `9`. (An octopus can only flash _at most once per step_.)
|
||||
* Finally, any octopus that flashed during this step has its energy level set to `0`, as it used all of its energy to flash.
|
||||
|
||||
Adjacent flashes can cause an octopus to flash on a step even if it begins
|
||||
that step with very little energy. Consider the middle octopus with `1` energy
|
||||
in this situation:
|
||||
|
||||
[code]
|
||||
|
||||
Before any steps:
|
||||
11111
|
||||
19991
|
||||
19191
|
||||
19991
|
||||
11111
|
||||
|
||||
After step 1:
|
||||
34543
|
||||
4 _000_ 4
|
||||
5 _000_ 5
|
||||
4 _000_ 4
|
||||
34543
|
||||
|
||||
After step 2:
|
||||
45654
|
||||
51115
|
||||
61116
|
||||
51115
|
||||
45654
|
||||
|
||||
[/code]
|
||||
|
||||
An octopus is _highlighted_ when it flashed during the given step.
|
||||
|
||||
Here is how the larger example above progresses:
|
||||
|
||||
[code]
|
||||
|
||||
Before any steps:
|
||||
5483143223
|
||||
2745854711
|
||||
5264556173
|
||||
6141336146
|
||||
6357385478
|
||||
4167524645
|
||||
2176841721
|
||||
6882881134
|
||||
4846848554
|
||||
5283751526
|
||||
|
||||
After step 1:
|
||||
6594254334
|
||||
3856965822
|
||||
6375667284
|
||||
7252447257
|
||||
7468496589
|
||||
5278635756
|
||||
3287952832
|
||||
7993992245
|
||||
5957959665
|
||||
6394862637
|
||||
|
||||
After step 2:
|
||||
88 _0_ 7476555
|
||||
5 _0_ 89 _0_ 87 _0_ 54
|
||||
85978896 _0_ 8
|
||||
84857696 _00_
|
||||
87 _00_ 9 _0_ 88 _00_
|
||||
66 _000_ 88989
|
||||
68 _0000_ 5943
|
||||
_000000_ 7456
|
||||
9 _000000_ 876
|
||||
87 _0000_ 6848
|
||||
|
||||
After step 3:
|
||||
_00_ 5 _0_ 9 _00_ 866
|
||||
85 _00_ 8 _00_ 575
|
||||
99 _000000_ 39
|
||||
97 _000000_ 41
|
||||
9935 _0_ 8 _00_ 63
|
||||
77123 _00000_
|
||||
791125 _000_ 9
|
||||
221113 _0000_
|
||||
_0_ 421125 _000_
|
||||
_00_ 21119 _000_
|
||||
|
||||
After step 4:
|
||||
2263 _0_ 31977
|
||||
_0_ 923 _0_ 31697
|
||||
_00_ 3222115 _0_
|
||||
_00_ 41111163
|
||||
_00_ 76191174
|
||||
_00_ 53411122
|
||||
_00_ 4236112 _0_
|
||||
5532241122
|
||||
1532247211
|
||||
113223 _0_ 211
|
||||
|
||||
After step 5:
|
||||
4484144 _000_
|
||||
2 _0_ 44144 _000_
|
||||
2253333493
|
||||
1152333274
|
||||
11873 _0_ 3285
|
||||
1164633233
|
||||
1153472231
|
||||
6643352233
|
||||
2643358322
|
||||
2243341322
|
||||
|
||||
After step 6:
|
||||
5595255111
|
||||
3155255222
|
||||
33644446 _0_ 5
|
||||
2263444496
|
||||
2298414396
|
||||
2275744344
|
||||
2264583342
|
||||
7754463344
|
||||
3754469433
|
||||
3354452433
|
||||
|
||||
After step 7:
|
||||
67 _0_ 7366222
|
||||
4377366333
|
||||
4475555827
|
||||
34966557 _0_ 9
|
||||
35 _00_ 6256 _0_ 9
|
||||
35 _0_ 9955566
|
||||
3486694453
|
||||
8865585555
|
||||
486558 _0_ 644
|
||||
4465574644
|
||||
|
||||
After step 8:
|
||||
7818477333
|
||||
5488477444
|
||||
5697666949
|
||||
46 _0_ 876683 _0_
|
||||
473494673 _0_
|
||||
474 _00_ 97688
|
||||
69 _0000_ 7564
|
||||
_000000_ 9666
|
||||
8 _00000_ 4755
|
||||
68 _0000_ 7755
|
||||
|
||||
After step 9:
|
||||
9 _0_ 6 _0000_ 644
|
||||
78 _00000_ 976
|
||||
69 _000000_ 8 _0_
|
||||
584 _00000_ 82
|
||||
5858 _0000_ 93
|
||||
69624 _00000_
|
||||
8 _0_ 2125 _000_ 9
|
||||
222113 _000_ 9
|
||||
9111128 _0_ 97
|
||||
7911119976
|
||||
|
||||
After step 10:
|
||||
_0_ 481112976
|
||||
_00_ 31112 _00_ 9
|
||||
_00_ 411125 _0_ 4
|
||||
_00_ 811114 _0_ 6
|
||||
_00_ 991113 _0_ 6
|
||||
_00_ 93511233
|
||||
_0_ 44236113 _0_
|
||||
553225235 _0_
|
||||
_0_ 53225 _0_ 6 _00_
|
||||
_00_ 3224 _0000_
|
||||
|
||||
[/code]
|
||||
|
||||
After step 10, there have been a total of `204` flashes. Fast forwarding, here
|
||||
is the same configuration every 10 steps:
|
||||
|
||||
[code]
|
||||
|
||||
After step 20:
|
||||
3936556452
|
||||
56865568 _0_ 6
|
||||
449655569 _0_
|
||||
444865558 _0_
|
||||
445686557 _0_
|
||||
568 _00_ 86577
|
||||
7 _00000_ 9896
|
||||
_0000000_ 344
|
||||
6 _000000_ 364
|
||||
46 _0000_ 9543
|
||||
|
||||
After step 30:
|
||||
_0_ 643334118
|
||||
4253334611
|
||||
3374333458
|
||||
2225333337
|
||||
2229333338
|
||||
2276733333
|
||||
2754574565
|
||||
5544458511
|
||||
9444447111
|
||||
7944446119
|
||||
|
||||
After step 40:
|
||||
6211111981
|
||||
_0_ 421111119
|
||||
_00_ 42111115
|
||||
_000_ 3111115
|
||||
_000_ 3111116
|
||||
_00_ 65611111
|
||||
_0_ 532351111
|
||||
3322234597
|
||||
2222222976
|
||||
2222222762
|
||||
|
||||
After step 50:
|
||||
9655556447
|
||||
48655568 _0_ 5
|
||||
448655569 _0_
|
||||
445865558 _0_
|
||||
457486557 _0_
|
||||
57 _000_ 86566
|
||||
6 _00000_ 9887
|
||||
8 _000000_ 533
|
||||
68 _00000_ 633
|
||||
568 _0000_ 538
|
||||
|
||||
After step 60:
|
||||
25333342 _00_
|
||||
274333464 _0_
|
||||
2264333458
|
||||
2225333337
|
||||
2225333338
|
||||
2287833333
|
||||
3854573455
|
||||
1854458611
|
||||
1175447111
|
||||
1115446111
|
||||
|
||||
After step 70:
|
||||
8211111164
|
||||
_0_ 421111166
|
||||
_00_ 42111114
|
||||
_000_ 4211115
|
||||
_0000_ 211116
|
||||
_00_ 65611111
|
||||
_0_ 532351111
|
||||
7322235117
|
||||
5722223475
|
||||
4572222754
|
||||
|
||||
After step 80:
|
||||
1755555697
|
||||
59655556 _0_ 9
|
||||
448655568 _0_
|
||||
445865558 _0_
|
||||
457 _0_ 86557 _0_
|
||||
57 _000_ 86566
|
||||
7 _00000_ 8666
|
||||
_0000000_ 99 _0_
|
||||
_0000000_ 8 _00_
|
||||
_0000000000_
|
||||
|
||||
After step 90:
|
||||
7433333522
|
||||
2643333522
|
||||
2264333458
|
||||
2226433337
|
||||
2222433338
|
||||
2287833333
|
||||
2854573333
|
||||
4854458333
|
||||
3387779333
|
||||
3333333333
|
||||
|
||||
After step 100:
|
||||
_0_ 397666866
|
||||
_0_ 749766918
|
||||
_00_ 53976933
|
||||
_000_ 4297822
|
||||
_000_ 4229892
|
||||
_00_ 53222877
|
||||
_0_ 532222966
|
||||
9322228966
|
||||
7922286866
|
||||
6789998766
|
||||
|
||||
[/code]
|
||||
|
||||
After 100 steps, there have been a total of `_1656_` flashes.
|
||||
|
||||
Given the starting energy levels of the dumbo octopuses in your cavern,
|
||||
simulate 100 steps. _How many total flashes are there after 100 steps?_
|
||||
|
@ -0,0 +1,10 @@
|
||||
5483143223
|
||||
2745854711
|
||||
5264556173
|
||||
6141336146
|
||||
6357385478
|
||||
4167524645
|
||||
2176841721
|
||||
6882881134
|
||||
4846848554
|
||||
5283751526
|
@ -0,0 +1,20 @@
|
||||
Before any steps:
|
||||
11111
|
||||
19991
|
||||
19191
|
||||
19991
|
||||
11111
|
||||
|
||||
After step 1:
|
||||
34543
|
||||
4 _000_ 4
|
||||
5 _000_ 5
|
||||
4 _000_ 4
|
||||
34543
|
||||
|
||||
After step 2:
|
||||
45654
|
||||
51115
|
||||
61116
|
||||
51115
|
||||
45654
|
@ -0,0 +1,131 @@
|
||||
Before any steps:
|
||||
5483143223
|
||||
2745854711
|
||||
5264556173
|
||||
6141336146
|
||||
6357385478
|
||||
4167524645
|
||||
2176841721
|
||||
6882881134
|
||||
4846848554
|
||||
5283751526
|
||||
|
||||
After step 1:
|
||||
6594254334
|
||||
3856965822
|
||||
6375667284
|
||||
7252447257
|
||||
7468496589
|
||||
5278635756
|
||||
3287952832
|
||||
7993992245
|
||||
5957959665
|
||||
6394862637
|
||||
|
||||
After step 2:
|
||||
88 _0_ 7476555
|
||||
5 _0_ 89 _0_ 87 _0_ 54
|
||||
85978896 _0_ 8
|
||||
84857696 _00_
|
||||
87 _00_ 9 _0_ 88 _00_
|
||||
66 _000_ 88989
|
||||
68 _0000_ 5943
|
||||
_000000_ 7456
|
||||
9 _000000_ 876
|
||||
87 _0000_ 6848
|
||||
|
||||
After step 3:
|
||||
_00_ 5 _0_ 9 _00_ 866
|
||||
85 _00_ 8 _00_ 575
|
||||
99 _000000_ 39
|
||||
97 _000000_ 41
|
||||
9935 _0_ 8 _00_ 63
|
||||
77123 _00000_
|
||||
791125 _000_ 9
|
||||
221113 _0000_
|
||||
_0_ 421125 _000_
|
||||
_00_ 21119 _000_
|
||||
|
||||
After step 4:
|
||||
2263 _0_ 31977
|
||||
_0_ 923 _0_ 31697
|
||||
_00_ 3222115 _0_
|
||||
_00_ 41111163
|
||||
_00_ 76191174
|
||||
_00_ 53411122
|
||||
_00_ 4236112 _0_
|
||||
5532241122
|
||||
1532247211
|
||||
113223 _0_ 211
|
||||
|
||||
After step 5:
|
||||
4484144 _000_
|
||||
2 _0_ 44144 _000_
|
||||
2253333493
|
||||
1152333274
|
||||
11873 _0_ 3285
|
||||
1164633233
|
||||
1153472231
|
||||
6643352233
|
||||
2643358322
|
||||
2243341322
|
||||
|
||||
After step 6:
|
||||
5595255111
|
||||
3155255222
|
||||
33644446 _0_ 5
|
||||
2263444496
|
||||
2298414396
|
||||
2275744344
|
||||
2264583342
|
||||
7754463344
|
||||
3754469433
|
||||
3354452433
|
||||
|
||||
After step 7:
|
||||
67 _0_ 7366222
|
||||
4377366333
|
||||
4475555827
|
||||
34966557 _0_ 9
|
||||
35 _00_ 6256 _0_ 9
|
||||
35 _0_ 9955566
|
||||
3486694453
|
||||
8865585555
|
||||
486558 _0_ 644
|
||||
4465574644
|
||||
|
||||
After step 8:
|
||||
7818477333
|
||||
5488477444
|
||||
5697666949
|
||||
46 _0_ 876683 _0_
|
||||
473494673 _0_
|
||||
474 _00_ 97688
|
||||
69 _0000_ 7564
|
||||
_000000_ 9666
|
||||
8 _00000_ 4755
|
||||
68 _0000_ 7755
|
||||
|
||||
After step 9:
|
||||
9 _0_ 6 _0000_ 644
|
||||
78 _00000_ 976
|
||||
69 _000000_ 8 _0_
|
||||
584 _00000_ 82
|
||||
5858 _0000_ 93
|
||||
69624 _00000_
|
||||
8 _0_ 2125 _000_ 9
|
||||
222113 _000_ 9
|
||||
9111128 _0_ 97
|
||||
7911119976
|
||||
|
||||
After step 10:
|
||||
_0_ 481112976
|
||||
_00_ 31112 _00_ 9
|
||||
_00_ 411125 _0_ 4
|
||||
_00_ 811114 _0_ 6
|
||||
_00_ 991113 _0_ 6
|
||||
_00_ 93511233
|
||||
_0_ 44236113 _0_
|
||||
553225235 _0_
|
||||
_0_ 53225 _0_ 6 _00_
|
||||
_00_ 3224 _0000_
|
@ -0,0 +1,107 @@
|
||||
After step 20:
|
||||
3936556452
|
||||
56865568 _0_ 6
|
||||
449655569 _0_
|
||||
444865558 _0_
|
||||
445686557 _0_
|
||||
568 _00_ 86577
|
||||
7 _00000_ 9896
|
||||
_0000000_ 344
|
||||
6 _000000_ 364
|
||||
46 _0000_ 9543
|
||||
|
||||
After step 30:
|
||||
_0_ 643334118
|
||||
4253334611
|
||||
3374333458
|
||||
2225333337
|
||||
2229333338
|
||||
2276733333
|
||||
2754574565
|
||||
5544458511
|
||||
9444447111
|
||||
7944446119
|
||||
|
||||
After step 40:
|
||||
6211111981
|
||||
_0_ 421111119
|
||||
_00_ 42111115
|
||||
_000_ 3111115
|
||||
_000_ 3111116
|
||||
_00_ 65611111
|
||||
_0_ 532351111
|
||||
3322234597
|
||||
2222222976
|
||||
2222222762
|
||||
|
||||
After step 50:
|
||||
9655556447
|
||||
48655568 _0_ 5
|
||||
448655569 _0_
|
||||
445865558 _0_
|
||||
457486557 _0_
|
||||
57 _000_ 86566
|
||||
6 _00000_ 9887
|
||||
8 _000000_ 533
|
||||
68 _00000_ 633
|
||||
568 _0000_ 538
|
||||
|
||||
After step 60:
|
||||
25333342 _00_
|
||||
274333464 _0_
|
||||
2264333458
|
||||
2225333337
|
||||
2225333338
|
||||
2287833333
|
||||
3854573455
|
||||
1854458611
|
||||
1175447111
|
||||
1115446111
|
||||
|
||||
After step 70:
|
||||
8211111164
|
||||
_0_ 421111166
|
||||
_00_ 42111114
|
||||
_000_ 4211115
|
||||
_0000_ 211116
|
||||
_00_ 65611111
|
||||
_0_ 532351111
|
||||
7322235117
|
||||
5722223475
|
||||
4572222754
|
||||
|
||||
After step 80:
|
||||
1755555697
|
||||
59655556 _0_ 9
|
||||
448655568 _0_
|
||||
445865558 _0_
|
||||
457 _0_ 86557 _0_
|
||||
57 _000_ 86566
|
||||
7 _00000_ 8666
|
||||
_0000000_ 99 _0_
|
||||
_0000000_ 8 _00_
|
||||
_0000000000_
|
||||
|
||||
After step 90:
|
||||
7433333522
|
||||
2643333522
|
||||
2264333458
|
||||
2226433337
|
||||
2222433338
|
||||
2287833333
|
||||
2854573333
|
||||
4854458333
|
||||
3387779333
|
||||
3333333333
|
||||
|
||||
After step 100:
|
||||
_0_ 397666866
|
||||
_0_ 749766918
|
||||
_00_ 53976933
|
||||
_000_ 4297822
|
||||
_000_ 4229892
|
||||
_00_ 53222877
|
||||
_0_ 532222966
|
||||
9322228966
|
||||
7922286866
|
||||
6789998766
|
@ -0,0 +1,10 @@
|
||||
1443668646
|
||||
7686735716
|
||||
4261576231
|
||||
3361258654
|
||||
4852532611
|
||||
5587113732
|
||||
1224426757
|
||||
5155565133
|
||||
6488377862
|
||||
8267833811
|
@ -0,0 +1,185 @@
|
||||
use std::io::stdin;
|
||||
use std::io::BufRead;
|
||||
use std::thread::sleep;
|
||||
use std::time;
|
||||
|
||||
const WIDTH: usize = 10;
|
||||
const HEIGHT: usize = 10;
|
||||
|
||||
fn main() {
|
||||
let arg = std::env::args().nth(1).unwrap_or("part2".to_string());
|
||||
match arg.as_str() {
|
||||
"part1" => part1(),
|
||||
_ => part2(),
|
||||
}
|
||||
}
|
||||
|
||||
fn part1() {
|
||||
println!("Part1");
|
||||
|
||||
let numbers: Vec<u8> = stdin()
|
||||
.lock()
|
||||
.lines()
|
||||
.map(|line| line.unwrap().chars().collect::<Vec<char>>())
|
||||
.flatten()
|
||||
.map(|c| c.to_string().parse().unwrap())
|
||||
.collect();
|
||||
|
||||
let mut field = Field::new(numbers);
|
||||
|
||||
field.print();
|
||||
println!();
|
||||
|
||||
let mut flashes = 0;
|
||||
|
||||
for step in 1..101 {
|
||||
print!("\x1b[12A");
|
||||
flashes += field.step();
|
||||
println!("After step {}", step);
|
||||
field.print();
|
||||
println!();
|
||||
|
||||
sleep(time::Duration::from_millis(100));
|
||||
}
|
||||
|
||||
dbg!(flashes);
|
||||
}
|
||||
|
||||
fn part2() {
|
||||
println!("Part2");
|
||||
|
||||
let numbers: Vec<u8> = stdin()
|
||||
.lock()
|
||||
.lines()
|
||||
.map(|line| line.unwrap().chars().collect::<Vec<char>>())
|
||||
.flatten()
|
||||
.map(|c| c.to_string().parse().unwrap())
|
||||
.collect();
|
||||
|
||||
let mut field = Field::new(numbers);
|
||||
|
||||
field.print();
|
||||
println!();
|
||||
|
||||
let mut step = 0;
|
||||
|
||||
while !field.is_synchronized() {
|
||||
print!("\x1b[12A");
|
||||
field.step();
|
||||
step += 1;
|
||||
println!("After step {}", step);
|
||||
field.print();
|
||||
println!();
|
||||
sleep(time::Duration::from_millis(10));
|
||||
}
|
||||
dbg!(step);
|
||||
}
|
||||
|
||||
struct Field {
|
||||
numbers: Vec<u8>,
|
||||
}
|
||||
|
||||
impl<'a> Field {
|
||||
fn new(numbers: Vec<u8>) -> Field {
|
||||
Field { numbers }
|
||||
}
|
||||
|
||||
fn get(&'a self, pos: (usize, usize)) -> Option<&'a u8> {
|
||||
let (x, y) = pos;
|
||||
let idx = x * WIDTH + y;
|
||||
self.numbers.get(idx)
|
||||
}
|
||||
|
||||
fn get_mut(&'a mut self, pos: (usize, usize)) -> Option<&'a mut u8> {
|
||||
let (x, y) = pos;
|
||||
let idx = x * WIDTH + y;
|
||||
self.numbers.get_mut(idx)
|
||||
}
|
||||
|
||||
fn print(&self) {
|
||||
for x in 0..HEIGHT {
|
||||
for y in 0..WIDTH {
|
||||
let value = self.get((x, y)).unwrap();
|
||||
if *value == 0 {
|
||||
print!("\x1b[31m{}\x1b[0m", value);
|
||||
} else {
|
||||
print!("{}", value);
|
||||
}
|
||||
}
|
||||
println!();
|
||||
}
|
||||
}
|
||||
|
||||
fn step(&mut self) -> i32 {
|
||||
let mut to_increase = Vec::new();
|
||||
|
||||
for x in 0..HEIGHT {
|
||||
for y in 0..WIDTH {
|
||||
to_increase.push((x, y));
|
||||
}
|
||||
}
|
||||
|
||||
while to_increase.len() > 0 {
|
||||
let pos = to_increase.pop().unwrap();
|
||||
|
||||
let value = self.get_mut(pos).unwrap();
|
||||
*value += 1;
|
||||
if *value == 10 {
|
||||
to_increase.append(&mut self.neighbors(pos));
|
||||
}
|
||||
}
|
||||
|
||||
let mut flashes = 0;
|
||||
|
||||
for x in 0..HEIGHT {
|
||||
for y in 0..WIDTH {
|
||||
let value = self.get_mut((x, y)).unwrap();
|
||||
if *value > 9 {
|
||||
*value = 0;
|
||||
flashes += 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
flashes
|
||||
}
|
||||
|
||||
fn neighbors(&self, pos: (usize, usize)) -> Vec<(usize, usize)> {
|
||||
let (x, y) = pos;
|
||||
let mut neigh = Vec::new();
|
||||
for dx in 0..3 {
|
||||
for dy in 0..3 {
|
||||
let neigh_x = x + dx;
|
||||
let neigh_y = y + dy;
|
||||
if neigh_x == 0 {
|
||||
continue;
|
||||
}
|
||||
if neigh_y == 0 {
|
||||
continue;
|
||||
}
|
||||
if neigh_x == HEIGHT + 1 {
|
||||
continue;
|
||||
}
|
||||
if neigh_y == HEIGHT + 1 {
|
||||
continue;
|
||||
}
|
||||
if dx == 1 && dy == 1 {
|
||||
continue;
|
||||
}
|
||||
neigh.push((x + dx - 1, y + dy - 1));
|
||||
}
|
||||
}
|
||||
neigh
|
||||
}
|
||||
|
||||
fn is_synchronized(&self) -> bool {
|
||||
for x in 0..HEIGHT {
|
||||
for y in 0..WIDTH {
|
||||
if *self.get((x, y)).unwrap() != 0 {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue