day17: super obvious code cleanups, more to do
This commit is contained in:
parent
9e37b2ce66
commit
3ee26cefe5
80
17/Cargo.lock
generated
80
17/Cargo.lock
generated
@ -12,46 +12,24 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
|||||||
name = "day17"
|
name = "day17"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"petgraph",
|
"itertools",
|
||||||
|
"termcolor",
|
||||||
"test-case",
|
"test-case",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "equivalent"
|
name = "either"
|
||||||
version = "1.0.1"
|
version = "1.9.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
|
checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fixedbitset"
|
name = "itertools"
|
||||||
version = "0.4.2"
|
version = "0.12.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
|
checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "hashbrown"
|
|
||||||
version = "0.14.3"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "indexmap"
|
|
||||||
version = "2.1.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"equivalent",
|
"either",
|
||||||
"hashbrown",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "petgraph"
|
|
||||||
version = "0.6.4"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
|
|
||||||
dependencies = [
|
|
||||||
"fixedbitset",
|
|
||||||
"indexmap",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -83,6 +61,15 @@ dependencies = [
|
|||||||
"unicode-ident",
|
"unicode-ident",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "termcolor"
|
||||||
|
version = "1.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
|
||||||
|
dependencies = [
|
||||||
|
"winapi-util",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "test-case"
|
name = "test-case"
|
||||||
version = "3.3.1"
|
version = "3.3.1"
|
||||||
@ -121,3 +108,34 @@ name = "unicode-ident"
|
|||||||
version = "1.0.12"
|
version = "1.0.12"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
|
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi"
|
||||||
|
version = "0.3.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
|
||||||
|
dependencies = [
|
||||||
|
"winapi-i686-pc-windows-gnu",
|
||||||
|
"winapi-x86_64-pc-windows-gnu",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi-i686-pc-windows-gnu"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi-util"
|
||||||
|
version = "0.1.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
|
||||||
|
dependencies = [
|
||||||
|
"winapi",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi-x86_64-pc-windows-gnu"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
||||||
|
@ -6,5 +6,6 @@ edition = "2021"
|
|||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
petgraph = "0.6.4"
|
itertools = "0.12.0"
|
||||||
|
termcolor = "1.4.0"
|
||||||
test-case = "3.3.1"
|
test-case = "3.3.1"
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
use termcolor::Color;
|
use termcolor::Color;
|
||||||
|
|
||||||
pub struct ColorMap(&'static [Color]);
|
pub struct ColorMap(&'static [Color]);
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
pub const COLORMAP_SMOOTH_COOLWARM: ColorMap = ColorMap(&[
|
pub const COLORMAP_SMOOTH_COOLWARM: ColorMap = ColorMap(&[
|
||||||
Color::Rgb(59, 76, 19),
|
Color::Rgb(59, 76, 19),
|
||||||
Color::Rgb(60, 78, 19),
|
Color::Rgb(60, 78, 19),
|
||||||
@ -260,263 +262,264 @@ pub const COLORMAP_SMOOTH_COOLWARM: ColorMap = ColorMap(&[
|
|||||||
Color::Rgb(180, 4, 38),
|
Color::Rgb(180, 4, 38),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
pub const COLORMAP_INFERNO: ColorMap = ColorMap(&[
|
pub const COLORMAP_INFERNO: ColorMap = ColorMap(&[
|
||||||
Color::Rgb(0, 0, 4),
|
Color::Rgb(0, 0, 4),
|
||||||
Color::Rgb(1, 0, 5),
|
Color::Rgb(1, 0, 5),
|
||||||
Color::Rgb(1, 1, 6),
|
Color::Rgb(1, 1, 6),
|
||||||
Color::Rgb(1, 1, 8),
|
Color::Rgb(1, 1, 8),
|
||||||
Color::Rgb(2, 1, 10),
|
Color::Rgb(2, 1, 10),
|
||||||
Color::Rgb(2, 2, 12),
|
Color::Rgb(2, 2, 12),
|
||||||
Color::Rgb(2, 2, 14),
|
Color::Rgb(2, 2, 14),
|
||||||
Color::Rgb(3, 2, 16),
|
Color::Rgb(3, 2, 16),
|
||||||
Color::Rgb(4, 3, 18),
|
Color::Rgb(4, 3, 18),
|
||||||
Color::Rgb(4, 3, 20),
|
Color::Rgb(4, 3, 20),
|
||||||
Color::Rgb(5, 4, 23),
|
Color::Rgb(5, 4, 23),
|
||||||
Color::Rgb(6, 4, 25),
|
Color::Rgb(6, 4, 25),
|
||||||
Color::Rgb(7, 5, 27),
|
Color::Rgb(7, 5, 27),
|
||||||
Color::Rgb(8, 5, 29),
|
Color::Rgb(8, 5, 29),
|
||||||
Color::Rgb(9, 6, 31),
|
Color::Rgb(9, 6, 31),
|
||||||
Color::Rgb(10, 7, 34),
|
Color::Rgb(10, 7, 34),
|
||||||
Color::Rgb(11, 7, 36),
|
Color::Rgb(11, 7, 36),
|
||||||
Color::Rgb(12, 8, 38),
|
Color::Rgb(12, 8, 38),
|
||||||
Color::Rgb(13, 8, 41),
|
Color::Rgb(13, 8, 41),
|
||||||
Color::Rgb(14, 9, 43),
|
Color::Rgb(14, 9, 43),
|
||||||
Color::Rgb(16, 9, 45),
|
Color::Rgb(16, 9, 45),
|
||||||
Color::Rgb(17, 10, 48),
|
Color::Rgb(17, 10, 48),
|
||||||
Color::Rgb(18, 10, 50),
|
Color::Rgb(18, 10, 50),
|
||||||
Color::Rgb(20, 11, 52),
|
Color::Rgb(20, 11, 52),
|
||||||
Color::Rgb(21, 11, 55),
|
Color::Rgb(21, 11, 55),
|
||||||
Color::Rgb(22, 11, 57),
|
Color::Rgb(22, 11, 57),
|
||||||
Color::Rgb(24, 12, 60),
|
Color::Rgb(24, 12, 60),
|
||||||
Color::Rgb(25, 12, 62),
|
Color::Rgb(25, 12, 62),
|
||||||
Color::Rgb(27, 12, 65),
|
Color::Rgb(27, 12, 65),
|
||||||
Color::Rgb(28, 12, 67),
|
Color::Rgb(28, 12, 67),
|
||||||
Color::Rgb(30, 12, 69),
|
Color::Rgb(30, 12, 69),
|
||||||
Color::Rgb(31, 12, 72),
|
Color::Rgb(31, 12, 72),
|
||||||
Color::Rgb(33, 12, 74),
|
Color::Rgb(33, 12, 74),
|
||||||
Color::Rgb(35, 12, 76),
|
Color::Rgb(35, 12, 76),
|
||||||
Color::Rgb(36, 12, 79),
|
Color::Rgb(36, 12, 79),
|
||||||
Color::Rgb(38, 12, 81),
|
Color::Rgb(38, 12, 81),
|
||||||
Color::Rgb(40, 11, 83),
|
Color::Rgb(40, 11, 83),
|
||||||
Color::Rgb(41, 11, 85),
|
Color::Rgb(41, 11, 85),
|
||||||
Color::Rgb(43, 11, 87),
|
Color::Rgb(43, 11, 87),
|
||||||
Color::Rgb(45, 11, 89),
|
Color::Rgb(45, 11, 89),
|
||||||
Color::Rgb(47, 10, 91),
|
Color::Rgb(47, 10, 91),
|
||||||
Color::Rgb(49, 10, 92),
|
Color::Rgb(49, 10, 92),
|
||||||
Color::Rgb(50, 10, 94),
|
Color::Rgb(50, 10, 94),
|
||||||
Color::Rgb(52, 10, 95),
|
Color::Rgb(52, 10, 95),
|
||||||
Color::Rgb(54, 9, 97),
|
Color::Rgb(54, 9, 97),
|
||||||
Color::Rgb(56, 9, 98),
|
Color::Rgb(56, 9, 98),
|
||||||
Color::Rgb(57, 9, 99),
|
Color::Rgb(57, 9, 99),
|
||||||
Color::Rgb(59, 9, 100),
|
Color::Rgb(59, 9, 100),
|
||||||
Color::Rgb(61, 9, 101),
|
Color::Rgb(61, 9, 101),
|
||||||
Color::Rgb(62, 9, 102),
|
Color::Rgb(62, 9, 102),
|
||||||
Color::Rgb(64, 10, 103),
|
Color::Rgb(64, 10, 103),
|
||||||
Color::Rgb(66, 10, 104),
|
Color::Rgb(66, 10, 104),
|
||||||
Color::Rgb(68, 10, 104),
|
Color::Rgb(68, 10, 104),
|
||||||
Color::Rgb(69, 10, 105),
|
Color::Rgb(69, 10, 105),
|
||||||
Color::Rgb(71, 11, 106),
|
Color::Rgb(71, 11, 106),
|
||||||
Color::Rgb(73, 11, 106),
|
Color::Rgb(73, 11, 106),
|
||||||
Color::Rgb(74, 12, 107),
|
Color::Rgb(74, 12, 107),
|
||||||
Color::Rgb(76, 12, 107),
|
Color::Rgb(76, 12, 107),
|
||||||
Color::Rgb(77, 13, 108),
|
Color::Rgb(77, 13, 108),
|
||||||
Color::Rgb(79, 13, 108),
|
Color::Rgb(79, 13, 108),
|
||||||
Color::Rgb(81, 14, 108),
|
Color::Rgb(81, 14, 108),
|
||||||
Color::Rgb(82, 14, 109),
|
Color::Rgb(82, 14, 109),
|
||||||
Color::Rgb(84, 15, 109),
|
Color::Rgb(84, 15, 109),
|
||||||
Color::Rgb(85, 15, 109),
|
Color::Rgb(85, 15, 109),
|
||||||
Color::Rgb(87, 16, 110),
|
Color::Rgb(87, 16, 110),
|
||||||
Color::Rgb(89, 16, 110),
|
Color::Rgb(89, 16, 110),
|
||||||
Color::Rgb(90, 17, 110),
|
Color::Rgb(90, 17, 110),
|
||||||
Color::Rgb(92, 18, 110),
|
Color::Rgb(92, 18, 110),
|
||||||
Color::Rgb(93, 18, 110),
|
Color::Rgb(93, 18, 110),
|
||||||
Color::Rgb(95, 19, 110),
|
Color::Rgb(95, 19, 110),
|
||||||
Color::Rgb(97, 19, 110),
|
Color::Rgb(97, 19, 110),
|
||||||
Color::Rgb(98, 20, 110),
|
Color::Rgb(98, 20, 110),
|
||||||
Color::Rgb(100, 21, 110),
|
Color::Rgb(100, 21, 110),
|
||||||
Color::Rgb(101, 21, 110),
|
Color::Rgb(101, 21, 110),
|
||||||
Color::Rgb(103, 22, 110),
|
Color::Rgb(103, 22, 110),
|
||||||
Color::Rgb(105, 22, 110),
|
Color::Rgb(105, 22, 110),
|
||||||
Color::Rgb(106, 23, 110),
|
Color::Rgb(106, 23, 110),
|
||||||
Color::Rgb(108, 24, 110),
|
Color::Rgb(108, 24, 110),
|
||||||
Color::Rgb(109, 24, 110),
|
Color::Rgb(109, 24, 110),
|
||||||
Color::Rgb(111, 25, 110),
|
Color::Rgb(111, 25, 110),
|
||||||
Color::Rgb(113, 25, 110),
|
Color::Rgb(113, 25, 110),
|
||||||
Color::Rgb(114, 26, 110),
|
Color::Rgb(114, 26, 110),
|
||||||
Color::Rgb(116, 26, 110),
|
Color::Rgb(116, 26, 110),
|
||||||
Color::Rgb(117, 27, 110),
|
Color::Rgb(117, 27, 110),
|
||||||
Color::Rgb(119, 28, 109),
|
Color::Rgb(119, 28, 109),
|
||||||
Color::Rgb(120, 28, 109),
|
Color::Rgb(120, 28, 109),
|
||||||
Color::Rgb(122, 29, 109),
|
Color::Rgb(122, 29, 109),
|
||||||
Color::Rgb(124, 29, 109),
|
Color::Rgb(124, 29, 109),
|
||||||
Color::Rgb(125, 30, 109),
|
Color::Rgb(125, 30, 109),
|
||||||
Color::Rgb(127, 30, 108),
|
Color::Rgb(127, 30, 108),
|
||||||
Color::Rgb(128, 31, 108),
|
Color::Rgb(128, 31, 108),
|
||||||
Color::Rgb(130, 32, 108),
|
Color::Rgb(130, 32, 108),
|
||||||
Color::Rgb(132, 32, 107),
|
Color::Rgb(132, 32, 107),
|
||||||
Color::Rgb(133, 33, 107),
|
Color::Rgb(133, 33, 107),
|
||||||
Color::Rgb(135, 33, 107),
|
Color::Rgb(135, 33, 107),
|
||||||
Color::Rgb(136, 34, 106),
|
Color::Rgb(136, 34, 106),
|
||||||
Color::Rgb(138, 34, 106),
|
Color::Rgb(138, 34, 106),
|
||||||
Color::Rgb(140, 35, 105),
|
Color::Rgb(140, 35, 105),
|
||||||
Color::Rgb(141, 35, 105),
|
Color::Rgb(141, 35, 105),
|
||||||
Color::Rgb(143, 36, 105),
|
Color::Rgb(143, 36, 105),
|
||||||
Color::Rgb(144, 37, 104),
|
Color::Rgb(144, 37, 104),
|
||||||
Color::Rgb(146, 37, 104),
|
Color::Rgb(146, 37, 104),
|
||||||
Color::Rgb(147, 38, 103),
|
Color::Rgb(147, 38, 103),
|
||||||
Color::Rgb(149, 38, 103),
|
Color::Rgb(149, 38, 103),
|
||||||
Color::Rgb(151, 39, 102),
|
Color::Rgb(151, 39, 102),
|
||||||
Color::Rgb(152, 39, 102),
|
Color::Rgb(152, 39, 102),
|
||||||
Color::Rgb(154, 40, 101),
|
Color::Rgb(154, 40, 101),
|
||||||
Color::Rgb(155, 41, 100),
|
Color::Rgb(155, 41, 100),
|
||||||
Color::Rgb(157, 41, 100),
|
Color::Rgb(157, 41, 100),
|
||||||
Color::Rgb(159, 42, 99),
|
Color::Rgb(159, 42, 99),
|
||||||
Color::Rgb(160, 42, 99),
|
Color::Rgb(160, 42, 99),
|
||||||
Color::Rgb(162, 43, 98),
|
Color::Rgb(162, 43, 98),
|
||||||
Color::Rgb(163, 44, 97),
|
Color::Rgb(163, 44, 97),
|
||||||
Color::Rgb(165, 44, 96),
|
Color::Rgb(165, 44, 96),
|
||||||
Color::Rgb(166, 45, 96),
|
Color::Rgb(166, 45, 96),
|
||||||
Color::Rgb(168, 46, 95),
|
Color::Rgb(168, 46, 95),
|
||||||
Color::Rgb(169, 46, 94),
|
Color::Rgb(169, 46, 94),
|
||||||
Color::Rgb(171, 47, 94),
|
Color::Rgb(171, 47, 94),
|
||||||
Color::Rgb(173, 48, 93),
|
Color::Rgb(173, 48, 93),
|
||||||
Color::Rgb(174, 48, 92),
|
Color::Rgb(174, 48, 92),
|
||||||
Color::Rgb(176, 49, 91),
|
Color::Rgb(176, 49, 91),
|
||||||
Color::Rgb(177, 50, 90),
|
Color::Rgb(177, 50, 90),
|
||||||
Color::Rgb(179, 50, 90),
|
Color::Rgb(179, 50, 90),
|
||||||
Color::Rgb(180, 51, 89),
|
Color::Rgb(180, 51, 89),
|
||||||
Color::Rgb(182, 52, 88),
|
Color::Rgb(182, 52, 88),
|
||||||
Color::Rgb(183, 53, 87),
|
Color::Rgb(183, 53, 87),
|
||||||
Color::Rgb(185, 53, 86),
|
Color::Rgb(185, 53, 86),
|
||||||
Color::Rgb(186, 54, 85),
|
Color::Rgb(186, 54, 85),
|
||||||
Color::Rgb(188, 55, 84),
|
Color::Rgb(188, 55, 84),
|
||||||
Color::Rgb(189, 56, 83),
|
Color::Rgb(189, 56, 83),
|
||||||
Color::Rgb(191, 57, 82),
|
Color::Rgb(191, 57, 82),
|
||||||
Color::Rgb(192, 58, 81),
|
Color::Rgb(192, 58, 81),
|
||||||
Color::Rgb(193, 58, 80),
|
Color::Rgb(193, 58, 80),
|
||||||
Color::Rgb(195, 59, 79),
|
Color::Rgb(195, 59, 79),
|
||||||
Color::Rgb(196, 60, 78),
|
Color::Rgb(196, 60, 78),
|
||||||
Color::Rgb(198, 61, 77),
|
Color::Rgb(198, 61, 77),
|
||||||
Color::Rgb(199, 62, 76),
|
Color::Rgb(199, 62, 76),
|
||||||
Color::Rgb(200, 63, 75),
|
Color::Rgb(200, 63, 75),
|
||||||
Color::Rgb(202, 64, 74),
|
Color::Rgb(202, 64, 74),
|
||||||
Color::Rgb(203, 65, 73),
|
Color::Rgb(203, 65, 73),
|
||||||
Color::Rgb(204, 66, 72),
|
Color::Rgb(204, 66, 72),
|
||||||
Color::Rgb(206, 67, 71),
|
Color::Rgb(206, 67, 71),
|
||||||
Color::Rgb(207, 68, 70),
|
Color::Rgb(207, 68, 70),
|
||||||
Color::Rgb(208, 69, 69),
|
Color::Rgb(208, 69, 69),
|
||||||
Color::Rgb(210, 70, 68),
|
Color::Rgb(210, 70, 68),
|
||||||
Color::Rgb(211, 71, 67),
|
Color::Rgb(211, 71, 67),
|
||||||
Color::Rgb(212, 72, 66),
|
Color::Rgb(212, 72, 66),
|
||||||
Color::Rgb(213, 74, 65),
|
Color::Rgb(213, 74, 65),
|
||||||
Color::Rgb(215, 75, 63),
|
Color::Rgb(215, 75, 63),
|
||||||
Color::Rgb(216, 76, 62),
|
Color::Rgb(216, 76, 62),
|
||||||
Color::Rgb(217, 77, 61),
|
Color::Rgb(217, 77, 61),
|
||||||
Color::Rgb(218, 78, 60),
|
Color::Rgb(218, 78, 60),
|
||||||
Color::Rgb(219, 80, 59),
|
Color::Rgb(219, 80, 59),
|
||||||
Color::Rgb(221, 81, 58),
|
Color::Rgb(221, 81, 58),
|
||||||
Color::Rgb(222, 82, 56),
|
Color::Rgb(222, 82, 56),
|
||||||
Color::Rgb(223, 83, 55),
|
Color::Rgb(223, 83, 55),
|
||||||
Color::Rgb(224, 85, 54),
|
Color::Rgb(224, 85, 54),
|
||||||
Color::Rgb(225, 86, 53),
|
Color::Rgb(225, 86, 53),
|
||||||
Color::Rgb(226, 87, 52),
|
Color::Rgb(226, 87, 52),
|
||||||
Color::Rgb(227, 89, 51),
|
Color::Rgb(227, 89, 51),
|
||||||
Color::Rgb(228, 90, 49),
|
Color::Rgb(228, 90, 49),
|
||||||
Color::Rgb(229, 92, 48),
|
Color::Rgb(229, 92, 48),
|
||||||
Color::Rgb(230, 93, 47),
|
Color::Rgb(230, 93, 47),
|
||||||
Color::Rgb(231, 94, 46),
|
Color::Rgb(231, 94, 46),
|
||||||
Color::Rgb(232, 96, 45),
|
Color::Rgb(232, 96, 45),
|
||||||
Color::Rgb(233, 97, 43),
|
Color::Rgb(233, 97, 43),
|
||||||
Color::Rgb(234, 99, 42),
|
Color::Rgb(234, 99, 42),
|
||||||
Color::Rgb(235, 100, 41),
|
Color::Rgb(235, 100, 41),
|
||||||
Color::Rgb(235, 102, 40),
|
Color::Rgb(235, 102, 40),
|
||||||
Color::Rgb(236, 103, 38),
|
Color::Rgb(236, 103, 38),
|
||||||
Color::Rgb(237, 105, 37),
|
Color::Rgb(237, 105, 37),
|
||||||
Color::Rgb(238, 106, 36),
|
Color::Rgb(238, 106, 36),
|
||||||
Color::Rgb(239, 108, 35),
|
Color::Rgb(239, 108, 35),
|
||||||
Color::Rgb(239, 110, 33),
|
Color::Rgb(239, 110, 33),
|
||||||
Color::Rgb(240, 111, 32),
|
Color::Rgb(240, 111, 32),
|
||||||
Color::Rgb(241, 113, 31),
|
Color::Rgb(241, 113, 31),
|
||||||
Color::Rgb(241, 115, 29),
|
Color::Rgb(241, 115, 29),
|
||||||
Color::Rgb(242, 116, 28),
|
Color::Rgb(242, 116, 28),
|
||||||
Color::Rgb(243, 118, 27),
|
Color::Rgb(243, 118, 27),
|
||||||
Color::Rgb(243, 120, 25),
|
Color::Rgb(243, 120, 25),
|
||||||
Color::Rgb(244, 121, 24),
|
Color::Rgb(244, 121, 24),
|
||||||
Color::Rgb(245, 123, 23),
|
Color::Rgb(245, 123, 23),
|
||||||
Color::Rgb(245, 125, 21),
|
Color::Rgb(245, 125, 21),
|
||||||
Color::Rgb(246, 126, 20),
|
Color::Rgb(246, 126, 20),
|
||||||
Color::Rgb(246, 128, 19),
|
Color::Rgb(246, 128, 19),
|
||||||
Color::Rgb(247, 130, 18),
|
Color::Rgb(247, 130, 18),
|
||||||
Color::Rgb(247, 132, 16),
|
Color::Rgb(247, 132, 16),
|
||||||
Color::Rgb(248, 133, 15),
|
Color::Rgb(248, 133, 15),
|
||||||
Color::Rgb(248, 135, 14),
|
Color::Rgb(248, 135, 14),
|
||||||
Color::Rgb(248, 137, 12),
|
Color::Rgb(248, 137, 12),
|
||||||
Color::Rgb(249, 139, 11),
|
Color::Rgb(249, 139, 11),
|
||||||
Color::Rgb(249, 140, 10),
|
Color::Rgb(249, 140, 10),
|
||||||
Color::Rgb(249, 142, 9),
|
Color::Rgb(249, 142, 9),
|
||||||
Color::Rgb(250, 144, 8),
|
Color::Rgb(250, 144, 8),
|
||||||
Color::Rgb(250, 146, 7),
|
Color::Rgb(250, 146, 7),
|
||||||
Color::Rgb(250, 148, 7),
|
Color::Rgb(250, 148, 7),
|
||||||
Color::Rgb(251, 150, 6),
|
Color::Rgb(251, 150, 6),
|
||||||
Color::Rgb(251, 151, 6),
|
Color::Rgb(251, 151, 6),
|
||||||
Color::Rgb(251, 153, 6),
|
Color::Rgb(251, 153, 6),
|
||||||
Color::Rgb(251, 155, 6),
|
Color::Rgb(251, 155, 6),
|
||||||
Color::Rgb(251, 157, 7),
|
Color::Rgb(251, 157, 7),
|
||||||
Color::Rgb(252, 159, 7),
|
Color::Rgb(252, 159, 7),
|
||||||
Color::Rgb(252, 161, 8),
|
Color::Rgb(252, 161, 8),
|
||||||
Color::Rgb(252, 163, 9),
|
Color::Rgb(252, 163, 9),
|
||||||
Color::Rgb(252, 165, 10),
|
Color::Rgb(252, 165, 10),
|
||||||
Color::Rgb(252, 166, 12),
|
Color::Rgb(252, 166, 12),
|
||||||
Color::Rgb(252, 168, 13),
|
Color::Rgb(252, 168, 13),
|
||||||
Color::Rgb(252, 170, 15),
|
Color::Rgb(252, 170, 15),
|
||||||
Color::Rgb(252, 172, 17),
|
Color::Rgb(252, 172, 17),
|
||||||
Color::Rgb(252, 174, 18),
|
Color::Rgb(252, 174, 18),
|
||||||
Color::Rgb(252, 176, 20),
|
Color::Rgb(252, 176, 20),
|
||||||
Color::Rgb(252, 178, 22),
|
Color::Rgb(252, 178, 22),
|
||||||
Color::Rgb(252, 180, 24),
|
Color::Rgb(252, 180, 24),
|
||||||
Color::Rgb(251, 182, 26),
|
Color::Rgb(251, 182, 26),
|
||||||
Color::Rgb(251, 184, 29),
|
Color::Rgb(251, 184, 29),
|
||||||
Color::Rgb(251, 186, 31),
|
Color::Rgb(251, 186, 31),
|
||||||
Color::Rgb(251, 188, 33),
|
Color::Rgb(251, 188, 33),
|
||||||
Color::Rgb(251, 190, 35),
|
Color::Rgb(251, 190, 35),
|
||||||
Color::Rgb(250, 192, 38),
|
Color::Rgb(250, 192, 38),
|
||||||
Color::Rgb(250, 194, 40),
|
Color::Rgb(250, 194, 40),
|
||||||
Color::Rgb(250, 196, 42),
|
Color::Rgb(250, 196, 42),
|
||||||
Color::Rgb(250, 198, 45),
|
Color::Rgb(250, 198, 45),
|
||||||
Color::Rgb(249, 199, 47),
|
Color::Rgb(249, 199, 47),
|
||||||
Color::Rgb(249, 201, 50),
|
Color::Rgb(249, 201, 50),
|
||||||
Color::Rgb(249, 203, 53),
|
Color::Rgb(249, 203, 53),
|
||||||
Color::Rgb(248, 205, 55),
|
Color::Rgb(248, 205, 55),
|
||||||
Color::Rgb(248, 207, 58),
|
Color::Rgb(248, 207, 58),
|
||||||
Color::Rgb(247, 209, 61),
|
Color::Rgb(247, 209, 61),
|
||||||
Color::Rgb(247, 211, 64),
|
Color::Rgb(247, 211, 64),
|
||||||
Color::Rgb(246, 213, 67),
|
Color::Rgb(246, 213, 67),
|
||||||
Color::Rgb(246, 215, 70),
|
Color::Rgb(246, 215, 70),
|
||||||
Color::Rgb(245, 217, 73),
|
Color::Rgb(245, 217, 73),
|
||||||
Color::Rgb(245, 219, 76),
|
Color::Rgb(245, 219, 76),
|
||||||
Color::Rgb(244, 221, 79),
|
Color::Rgb(244, 221, 79),
|
||||||
Color::Rgb(244, 223, 83),
|
Color::Rgb(244, 223, 83),
|
||||||
Color::Rgb(244, 225, 86),
|
Color::Rgb(244, 225, 86),
|
||||||
Color::Rgb(243, 227, 90),
|
Color::Rgb(243, 227, 90),
|
||||||
Color::Rgb(243, 229, 93),
|
Color::Rgb(243, 229, 93),
|
||||||
Color::Rgb(242, 230, 97),
|
Color::Rgb(242, 230, 97),
|
||||||
Color::Rgb(242, 232, 101),
|
Color::Rgb(242, 232, 101),
|
||||||
Color::Rgb(242, 234, 105),
|
Color::Rgb(242, 234, 105),
|
||||||
Color::Rgb(241, 236, 109),
|
Color::Rgb(241, 236, 109),
|
||||||
Color::Rgb(241, 237, 113),
|
Color::Rgb(241, 237, 113),
|
||||||
Color::Rgb(241, 239, 117),
|
Color::Rgb(241, 239, 117),
|
||||||
Color::Rgb(241, 241, 121),
|
Color::Rgb(241, 241, 121),
|
||||||
Color::Rgb(242, 242, 125),
|
Color::Rgb(242, 242, 125),
|
||||||
Color::Rgb(242, 244, 130),
|
Color::Rgb(242, 244, 130),
|
||||||
Color::Rgb(243, 245, 134),
|
Color::Rgb(243, 245, 134),
|
||||||
Color::Rgb(243, 246, 138),
|
Color::Rgb(243, 246, 138),
|
||||||
Color::Rgb(244, 248, 142),
|
Color::Rgb(244, 248, 142),
|
||||||
Color::Rgb(245, 249, 146),
|
Color::Rgb(245, 249, 146),
|
||||||
Color::Rgb(246, 250, 150),
|
Color::Rgb(246, 250, 150),
|
||||||
Color::Rgb(248, 251, 154),
|
Color::Rgb(248, 251, 154),
|
||||||
Color::Rgb(249, 252, 157),
|
Color::Rgb(249, 252, 157),
|
||||||
Color::Rgb(250, 253, 161),
|
Color::Rgb(250, 253, 161),
|
||||||
Color::Rgb(252, 255, 164),
|
Color::Rgb(252, 255, 164),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
impl ColorMap {
|
impl ColorMap {
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
use colormap::ColorMap;
|
use colormap::ColorMap;
|
||||||
use itertools::{Itertools, MinMaxResult};
|
|
||||||
use std::collections::hash_map::RandomState;
|
use std::collections::hash_map::RandomState;
|
||||||
use std::collections::{BinaryHeap, HashMap};
|
use std::collections::{BinaryHeap, HashMap};
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
@ -90,6 +89,7 @@ impl CityMap {
|
|||||||
_ => None,
|
_ => None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#[allow(dead_code)]
|
||||||
fn print(&self) -> Result<(), Box<dyn std::error::Error>> {
|
fn print(&self) -> Result<(), Box<dyn std::error::Error>> {
|
||||||
let cost_max = *self.map.iter().flat_map(|row| row.iter()).max().unwrap() as f64;
|
let cost_max = *self.map.iter().flat_map(|row| row.iter()).max().unwrap() as f64;
|
||||||
|
|
||||||
@ -115,7 +115,6 @@ type Position = (usize, usize);
|
|||||||
struct WalkCost<'a> {
|
struct WalkCost<'a> {
|
||||||
start: Position,
|
start: Position,
|
||||||
cost_from: Vec<Vec<HashMap<(Direction, usize), u64>>>,
|
cost_from: Vec<Vec<HashMap<(Direction, usize), u64>>>,
|
||||||
dir_to: HashMap<Position, Direction>,
|
|
||||||
map: &'a CityMap,
|
map: &'a CityMap,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -157,7 +156,6 @@ impl<'a> WalkCost<'a> {
|
|||||||
.iter()
|
.iter()
|
||||||
.map(|row| repeat(HashMap::new()).take(row.len()).collect())
|
.map(|row| repeat(HashMap::new()).take(row.len()).collect())
|
||||||
.collect(),
|
.collect(),
|
||||||
dir_to: HashMap::new(),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fn compute(&mut self) {
|
fn compute(&mut self) {
|
||||||
@ -230,38 +228,6 @@ impl<'a> WalkCost<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn shortest_path_to(&self, to: Position) -> Vec<(Position, Direction)> {
|
|
||||||
let mut path = Vec::new();
|
|
||||||
let mut cur_pos = to;
|
|
||||||
// start at the end, walk backwards
|
|
||||||
while cur_pos != self.start {
|
|
||||||
let dir = self.dir_to.get(&cur_pos).unwrap();
|
|
||||||
path.push((cur_pos, *dir));
|
|
||||||
cur_pos = self.map.offset_pos(cur_pos, &dir.opposite()).unwrap();
|
|
||||||
}
|
|
||||||
path
|
|
||||||
}
|
|
||||||
fn print_shortest_path(&self, to: Position) {
|
|
||||||
let path = self.shortest_path_to(to);
|
|
||||||
let map: HashMap<_, _, RandomState> = HashMap::from_iter(path.into_iter());
|
|
||||||
// for y in 0..self.cost_to.len() {
|
|
||||||
// for x in 0..self.map.map[y].len() {
|
|
||||||
// if let Some(to_dir) = map.get(&(x, y)) {
|
|
||||||
// let c = match to_dir {
|
|
||||||
// Direction::Left => '<',
|
|
||||||
// Direction::Right => '>',
|
|
||||||
// Direction::Up => '^',
|
|
||||||
// Direction::Down => 'v',
|
|
||||||
// };
|
|
||||||
// print!("{}", c);
|
|
||||||
// } else {
|
|
||||||
// print!("{}", self.map.map[y][x]);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// println!();
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct WalkCost2<'a> {
|
struct WalkCost2<'a> {
|
||||||
@ -374,7 +340,7 @@ impl<'a> WalkCost2<'a> {
|
|||||||
let mut cur_pos = to;
|
let mut cur_pos = to;
|
||||||
// start at the end, walk backwards
|
// start at the end, walk backwards
|
||||||
while cur_pos != self.start {
|
while cur_pos != self.start {
|
||||||
let (m, val) = self.cost_from[cur_pos.1][cur_pos.0]
|
let (m, _val) = self.cost_from[cur_pos.1][cur_pos.0]
|
||||||
.iter()
|
.iter()
|
||||||
.min_by(|a, b| a.1.cmp(b.1))
|
.min_by(|a, b| a.1.cmp(b.1))
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
Loading…
Reference in New Issue
Block a user