mirror of
https://github.com/bertptrs/adventofcode.git
synced 2025-12-25 21:00:31 +01:00
Clean up.
This commit is contained in:
40
2018/loc.svg
40
2018/loc.svg
@@ -32,10 +32,10 @@ z
|
||||
<defs>
|
||||
<path d="M 0 0
|
||||
L 0 3.5
|
||||
" id="m1883bfe898" style="stroke:#000000;stroke-width:0.8;"/>
|
||||
" id="md180c468f1" style="stroke:#000000;stroke-width:0.8;"/>
|
||||
</defs>
|
||||
<g>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="60.305455" xlink:href="#m1883bfe898" y="307.584"/>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="60.305455" xlink:href="#md180c468f1" y="307.584"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="text_1">
|
||||
@@ -71,7 +71,7 @@ z
|
||||
<g id="xtick_2">
|
||||
<g id="line2d_2">
|
||||
<g>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="127.941818" xlink:href="#m1883bfe898" y="307.584"/>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="127.941818" xlink:href="#md180c468f1" y="307.584"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="text_2">
|
||||
@@ -110,7 +110,7 @@ z
|
||||
<g id="xtick_3">
|
||||
<g id="line2d_3">
|
||||
<g>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="195.578182" xlink:href="#m1883bfe898" y="307.584"/>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="195.578182" xlink:href="#md180c468f1" y="307.584"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="text_3">
|
||||
@@ -139,7 +139,7 @@ z
|
||||
<g id="xtick_4">
|
||||
<g id="line2d_4">
|
||||
<g>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="263.214545" xlink:href="#m1883bfe898" y="307.584"/>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="263.214545" xlink:href="#md180c468f1" y="307.584"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="text_4">
|
||||
@@ -153,7 +153,7 @@ z
|
||||
<g id="xtick_5">
|
||||
<g id="line2d_5">
|
||||
<g>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="330.850909" xlink:href="#m1883bfe898" y="307.584"/>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="330.850909" xlink:href="#md180c468f1" y="307.584"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="text_5">
|
||||
@@ -193,7 +193,7 @@ z
|
||||
<g id="xtick_6">
|
||||
<g id="line2d_6">
|
||||
<g>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="398.487273" xlink:href="#m1883bfe898" y="307.584"/>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="398.487273" xlink:href="#md180c468f1" y="307.584"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="text_6">
|
||||
@@ -286,10 +286,10 @@ z
|
||||
<defs>
|
||||
<path d="M 0 0
|
||||
L -3.5 0
|
||||
" id="m6ecc85d2eb" style="stroke:#000000;stroke-width:0.8;"/>
|
||||
" id="mf0f7226eb2" style="stroke:#000000;stroke-width:0.8;"/>
|
||||
</defs>
|
||||
<g>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m6ecc85d2eb" y="295.488"/>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#mf0f7226eb2" y="295.488"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="text_8">
|
||||
@@ -302,7 +302,7 @@ L -3.5 0
|
||||
<g id="ytick_2">
|
||||
<g id="line2d_8">
|
||||
<g>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m6ecc85d2eb" y="247.488"/>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#mf0f7226eb2" y="247.488"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="text_9">
|
||||
@@ -316,7 +316,7 @@ L -3.5 0
|
||||
<g id="ytick_3">
|
||||
<g id="line2d_9">
|
||||
<g>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m6ecc85d2eb" y="199.488"/>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#mf0f7226eb2" y="199.488"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="text_10">
|
||||
@@ -331,7 +331,7 @@ L -3.5 0
|
||||
<g id="ytick_4">
|
||||
<g id="line2d_10">
|
||||
<g>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m6ecc85d2eb" y="151.488"/>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#mf0f7226eb2" y="151.488"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="text_11">
|
||||
@@ -346,7 +346,7 @@ L -3.5 0
|
||||
<g id="ytick_5">
|
||||
<g id="line2d_11">
|
||||
<g>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m6ecc85d2eb" y="103.488"/>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#mf0f7226eb2" y="103.488"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="text_12">
|
||||
@@ -361,7 +361,7 @@ L -3.5 0
|
||||
<g id="ytick_6">
|
||||
<g id="line2d_12">
|
||||
<g>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m6ecc85d2eb" y="55.488"/>
|
||||
<use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#mf0f7226eb2" y="55.488"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="text_13">
|
||||
@@ -577,7 +577,7 @@ z
|
||||
</g>
|
||||
</g>
|
||||
<g id="line2d_13">
|
||||
<path clip-path="url(#pd17c3d6773)" d="M 73.832727 282.048
|
||||
<path clip-path="url(#p26e262efc8)" d="M 73.832727 282.048
|
||||
L 87.36 277.248
|
||||
L 100.887273 270.528
|
||||
L 114.414545 269.568
|
||||
@@ -593,7 +593,7 @@ L 236.16 265.728
|
||||
L 249.687273 277.248
|
||||
L 263.214545 251.328
|
||||
L 276.741818 259.008
|
||||
L 290.269091 259.008
|
||||
L 290.269091 265.728
|
||||
L 303.796364 289.728
|
||||
L 317.323636 289.728
|
||||
L 330.850909 289.728
|
||||
@@ -605,7 +605,7 @@ L 398.487273 289.728
|
||||
" style="fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;"/>
|
||||
</g>
|
||||
<g id="line2d_14">
|
||||
<path clip-path="url(#pd17c3d6773)" d="M 73.832727 295.488
|
||||
<path clip-path="url(#p26e262efc8)" d="M 73.832727 295.488
|
||||
L 87.36 293.568
|
||||
L 100.887273 295.488
|
||||
L 114.414545 295.488
|
||||
@@ -633,7 +633,7 @@ L 398.487273 295.488
|
||||
" style="fill:none;stroke:#ff7f0e;stroke-linecap:square;stroke-width:1.5;"/>
|
||||
</g>
|
||||
<g id="line2d_15">
|
||||
<path clip-path="url(#pd17c3d6773)" d="M 73.832727 233.088
|
||||
<path clip-path="url(#p26e262efc8)" d="M 73.832727 233.088
|
||||
L 87.36 218.688
|
||||
L 100.887273 208.128
|
||||
L 114.414545 191.808
|
||||
@@ -649,7 +649,7 @@ L 236.16 95.808
|
||||
L 249.687273 205.248
|
||||
L 263.214545 53.568
|
||||
L 276.741818 86.208
|
||||
L 290.269091 142.848
|
||||
L 290.269091 165.888
|
||||
L 303.796364 277.248
|
||||
L 317.323636 277.248
|
||||
L 330.850909 277.248
|
||||
@@ -870,7 +870,7 @@ L 348.72625 83.926688
|
||||
</g>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="pd17c3d6773">
|
||||
<clipPath id="p26e262efc8">
|
||||
<rect height="266.112" width="357.12" x="57.6" y="41.472"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
|
||||
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
@@ -60,33 +60,6 @@ impl Day17 {
|
||||
};
|
||||
}
|
||||
|
||||
#[allow(unused)]
|
||||
fn map(&self) {
|
||||
let (xmin, xmax) = match self.clays.iter().map(|(x, _)| *x).minmax() {
|
||||
MinMaxResult::MinMax(a, b) => (a, b),
|
||||
_ => panic!(),
|
||||
};
|
||||
|
||||
println!("{}, {} to {}, {}", xmin, self.ymin, xmax, self.ymax);
|
||||
|
||||
for y in self.ymin..=self.ymax {
|
||||
let mut buf = String::with_capacity(xmax - xmin + 1);
|
||||
for x in xmin..=xmax {
|
||||
let pos = (x, y);
|
||||
if self.clays.contains(&pos) {
|
||||
buf.push('#');
|
||||
} else if self.contained.contains(&pos) {
|
||||
buf.push('~');
|
||||
} else if self.flowing.contains(&pos) {
|
||||
buf.push('|');
|
||||
} else {
|
||||
buf.push(' ');
|
||||
}
|
||||
}
|
||||
println!("{}", buf);
|
||||
}
|
||||
}
|
||||
|
||||
fn descend(&mut self, pos: Coordinate) {
|
||||
let (x, y) = pos;
|
||||
|
||||
@@ -152,25 +125,21 @@ impl Solution for Day17 {
|
||||
fn part1(&mut self, input: &mut Read) -> String {
|
||||
self.read_input(input);
|
||||
|
||||
|
||||
self.descend((500, 0));
|
||||
|
||||
let range_filter = |&&(_, y): &&(usize, usize)| y >= self.ymin && y <= self.ymax;
|
||||
|
||||
let result = self.contained.iter().filter(range_filter).count()
|
||||
+ self.flowing.iter().filter(range_filter).count();
|
||||
let result = self.contained.iter()
|
||||
.chain(self.flowing.iter())
|
||||
.filter(|&&(_, y)| y >= self.ymin && y <= self.ymax).count();
|
||||
format!("{}", result)
|
||||
}
|
||||
|
||||
fn part2(&mut self, input: &mut Read) -> String {
|
||||
self.read_input(input);
|
||||
|
||||
|
||||
self.descend((500, 0));
|
||||
|
||||
let range_filter = |&&(_, y): &&(usize, usize)| y >= self.ymin && y <= self.ymax;
|
||||
|
||||
let result = self.contained.iter().filter(range_filter).count();
|
||||
let result = self.contained.iter()
|
||||
.filter(|&&(_, y)| y >= self.ymin && y <= self.ymax).count();
|
||||
format!("{}", result)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user