parent
cb807de984
commit
4ee98ff5fa
@ -0,0 +1,347 @@
|
||||
position=< 10253, -50152> velocity=<-1, 5>
|
||||
position=< 20314, 40332> velocity=<-2, -4>
|
||||
position=<-19881, -30049> velocity=< 2, 3>
|
||||
position=<-29940, 10166> velocity=< 3, -1>
|
||||
position=<-40022, -40103> velocity=< 4, 4>
|
||||
position=< 30403, 20217> velocity=<-3, -2>
|
||||
position=< 20330, 10172> velocity=<-2, -1>
|
||||
position=< 30397, -40102> velocity=<-3, 4>
|
||||
position=< 10305, -50152> velocity=<-1, 5>
|
||||
position=< 20347, 10167> velocity=<-2, -1>
|
||||
position=< 30389, 50381> velocity=<-3, -5>
|
||||
position=< 50485, -40103> velocity=<-5, 4>
|
||||
position=< -9840, 40325> velocity=< 1, -4>
|
||||
position=<-29951, 20217> velocity=< 3, -2>
|
||||
position=< 40441, -30053> velocity=<-4, 3>
|
||||
position=<-19906, 20217> velocity=< 2, -2>
|
||||
position=< 40443, -50153> velocity=<-4, 5>
|
||||
position=< 40446, -19991> velocity=<-4, 2>
|
||||
position=< 30378, 40325> velocity=<-3, -4>
|
||||
position=< 20359, 20226> velocity=<-2, -2>
|
||||
position=<-50072, -30046> velocity=< 5, 3>
|
||||
position=< 30370, 30271> velocity=<-3, -3>
|
||||
position=< -9854, 20226> velocity=< 1, -2>
|
||||
position=<-29948, 10168> velocity=< 3, -1>
|
||||
position=<-19886, 50388> velocity=< 2, -5>
|
||||
position=<-50062, 20222> velocity=< 5, -2>
|
||||
position=<-29921, 30271> velocity=< 3, -3>
|
||||
position=<-29929, 30276> velocity=< 3, -3>
|
||||
position=< 30408, -30051> velocity=<-3, 3>
|
||||
position=< 40422, -40099> velocity=<-4, 4>
|
||||
position=<-50047, -9940> velocity=< 5, 1>
|
||||
position=< 30392, -19995> velocity=<-3, 2>
|
||||
position=<-39967, -40098> velocity=< 4, 4>
|
||||
position=< 30371, 30275> velocity=<-3, -3>
|
||||
position=<-19902, -30045> velocity=< 2, 3>
|
||||
position=< 30388, 50380> velocity=<-3, -5>
|
||||
position=< 30352, 10169> velocity=<-3, -1>
|
||||
position=<-29940, 40333> velocity=< 3, -4>
|
||||
position=<-50069, 30280> velocity=< 5, -3>
|
||||
position=<-39978, 10168> velocity=< 4, -1>
|
||||
position=<-39968, -9941> velocity=< 4, 1>
|
||||
position=<-19918, -40102> velocity=< 2, 4>
|
||||
position=< 10289, -50156> velocity=<-1, 5>
|
||||
position=< 40419, -50161> velocity=<-4, 5>
|
||||
position=<-50059, -40106> velocity=< 5, 4>
|
||||
position=< 10281, -50157> velocity=<-1, 5>
|
||||
position=< 40454, 50386> velocity=<-4, -5>
|
||||
position=< 20298, -30044> velocity=<-2, 3>
|
||||
position=< -9839, -9945> velocity=< 1, 1>
|
||||
position=<-19858, 30271> velocity=< 2, -3>
|
||||
position=<-50040, 40334> velocity=< 5, -4>
|
||||
position=< -9819, -9936> velocity=< 1, 1>
|
||||
position=< 10292, -30049> velocity=<-1, 3>
|
||||
position=< 30409, 30271> velocity=<-3, -3>
|
||||
position=< 40443, 30276> velocity=<-4, -3>
|
||||
position=<-19918, -50157> velocity=< 2, 5>
|
||||
position=< 10289, 30273> velocity=<-1, -3>
|
||||
position=<-29914, 50388> velocity=< 3, -5>
|
||||
position=< 20349, 50383> velocity=<-2, -5>
|
||||
position=<-39969, -50161> velocity=< 4, 5>
|
||||
position=< 50484, -40101> velocity=<-5, 4>
|
||||
position=<-29931, 40330> velocity=< 3, -4>
|
||||
position=< 50486, -50152> velocity=<-5, 5>
|
||||
position=< 50508, 40327> velocity=<-5, -4>
|
||||
position=< 30393, -50160> velocity=<-3, 5>
|
||||
position=< 50464, -19990> velocity=<-5, 2>
|
||||
position=< 30392, 50381> velocity=<-3, -5>
|
||||
position=<-29915, -30044> velocity=< 3, 3>
|
||||
position=< 50496, 30276> velocity=<-5, -3>
|
||||
position=< 30370, 30280> velocity=<-3, -3>
|
||||
position=< 40417, 10163> velocity=<-4, -1>
|
||||
position=< 10264, 30271> velocity=<-1, -3>
|
||||
position=< 30364, 40329> velocity=<-3, -4>
|
||||
position=< -9819, -40099> velocity=< 1, 4>
|
||||
position=< -9837, -50157> velocity=< 1, 5>
|
||||
position=< 50496, -40102> velocity=<-5, 4>
|
||||
position=<-39989, 10172> velocity=< 4, -1>
|
||||
position=< 20330, -40098> velocity=<-2, 4>
|
||||
position=<-50048, 20220> velocity=< 5, -2>
|
||||
position=< 10246, 30275> velocity=<-1, -3>
|
||||
position=< 10304, 20226> velocity=<-1, -2>
|
||||
position=<-40023, 10172> velocity=< 4, -1>
|
||||
position=<-19858, -50157> velocity=< 2, 5>
|
||||
position=< 30400, 50380> velocity=<-3, -5>
|
||||
position=<-40006, 50382> velocity=< 4, -5>
|
||||
position=< 50497, 50382> velocity=<-5, -5>
|
||||
position=< 30400, 20226> velocity=<-3, -2>
|
||||
position=< -9861, -19999> velocity=< 1, 2>
|
||||
position=<-29916, 10165> velocity=< 3, -1>
|
||||
position=< 40409, 20221> velocity=<-4, -2>
|
||||
position=<-40015, 30280> velocity=< 4, -3>
|
||||
position=< 50494, -19999> velocity=<-5, 2>
|
||||
position=< 10268, 40326> velocity=<-1, -4>
|
||||
position=< -9821, 20217> velocity=< 1, -2>
|
||||
position=<-29940, -30047> velocity=< 3, 3>
|
||||
position=<-19870, 20221> velocity=< 2, -2>
|
||||
position=< 20346, 20220> velocity=<-2, -2>
|
||||
position=< 40456, -40103> velocity=<-4, 4>
|
||||
position=<-19893, 10172> velocity=< 2, -1>
|
||||
position=<-29960, -19993> velocity=< 3, 2>
|
||||
position=<-50036, 30276> velocity=< 5, -3>
|
||||
position=< -9840, -30046> velocity=< 1, 3>
|
||||
position=<-19906, 20220> velocity=< 2, -2>
|
||||
position=<-19860, 20217> velocity=< 2, -2>
|
||||
position=<-29916, -40106> velocity=< 3, 4>
|
||||
position=<-50061, -9936> velocity=< 5, 1>
|
||||
position=<-29972, 30277> velocity=< 3, -3>
|
||||
position=<-50048, -40104> velocity=< 5, 4>
|
||||
position=< 20354, 20224> velocity=<-2, -2>
|
||||
position=<-19866, 50383> velocity=< 2, -5>
|
||||
position=< -9855, 20226> velocity=< 1, -2>
|
||||
position=<-40023, -50152> velocity=< 4, 5>
|
||||
position=< 10245, -50161> velocity=<-1, 5>
|
||||
position=<-39997, -19999> velocity=< 4, 2>
|
||||
position=< -9840, -19991> velocity=< 1, 2>
|
||||
position=< 30394, 50379> velocity=<-3, -5>
|
||||
position=< 20318, -50161> velocity=<-2, 5>
|
||||
position=<-50024, 50379> velocity=< 5, -5>
|
||||
position=<-29972, -50159> velocity=< 3, 5>
|
||||
position=<-19878, 10168> velocity=< 2, -1>
|
||||
position=< 30368, 10163> velocity=<-3, -1>
|
||||
position=< 30371, 20226> velocity=<-3, -2>
|
||||
position=<-19873, 50383> velocity=< 2, -5>
|
||||
position=< 20351, 10164> velocity=<-2, -1>
|
||||
position=< 40433, -9945> velocity=<-4, 1>
|
||||
position=< 10248, 50379> velocity=<-1, -5>
|
||||
position=<-50072, -9937> velocity=< 5, 1>
|
||||
position=<-29960, -9938> velocity=< 3, 1>
|
||||
position=< 50468, -30045> velocity=<-5, 3>
|
||||
position=<-50024, 20224> velocity=< 5, -2>
|
||||
position=< 50484, -9944> velocity=<-5, 1>
|
||||
position=< 40451, 10165> velocity=<-4, -1>
|
||||
position=< 40422, -19992> velocity=<-4, 2>
|
||||
position=<-19886, 50387> velocity=< 2, -5>
|
||||
position=< 10293, -9941> velocity=<-1, 1>
|
||||
position=< 40418, -40105> velocity=<-4, 4>
|
||||
position=< 10304, 50383> velocity=<-1, -5>
|
||||
position=<-29960, 40330> velocity=< 3, -4>
|
||||
position=<-39983, 50379> velocity=< 4, -5>
|
||||
position=< 30389, -30047> velocity=<-3, 3>
|
||||
position=<-40023, 50379> velocity=< 4, -5>
|
||||
position=<-29916, 40334> velocity=< 3, -4>
|
||||
position=<-19918, 30280> velocity=< 2, -3>
|
||||
position=<-29948, 20221> velocity=< 3, -2>
|
||||
position=<-39989, -30050> velocity=< 4, 3>
|
||||
position=< 30394, -50161> velocity=<-3, 5>
|
||||
position=< -9832, 30278> velocity=< 1, -3>
|
||||
position=<-29923, 40325> velocity=< 3, -4>
|
||||
position=< 20319, -40105> velocity=<-2, 4>
|
||||
position=< 30353, 30275> velocity=<-3, -3>
|
||||
position=< -9804, -50152> velocity=< 1, 5>
|
||||
position=<-19905, -9945> velocity=< 2, 1>
|
||||
position=< -9835, -50152> velocity=< 1, 5>
|
||||
position=< 40406, 40326> velocity=<-4, -4>
|
||||
position=< 50508, 10163> velocity=<-5, -1>
|
||||
position=<-19865, 10165> velocity=< 2, -1>
|
||||
position=< 10276, -50157> velocity=<-1, 5>
|
||||
position=<-19870, -19996> velocity=< 2, 2>
|
||||
position=<-19870, 30280> velocity=< 2, -3>
|
||||
position=<-39970, 40332> velocity=< 4, -4>
|
||||
position=< 40462, 50383> velocity=<-4, -5>
|
||||
position=< 40451, 10170> velocity=<-4, -1>
|
||||
position=< 40451, 50385> velocity=<-4, -5>
|
||||
position=<-29924, 30279> velocity=< 3, -3>
|
||||
position=< 30397, 30280> velocity=<-3, -3>
|
||||
position=<-40014, 50380> velocity=< 4, -5>
|
||||
position=<-19858, 50388> velocity=< 2, -5>
|
||||
position=<-29927, 50387> velocity=< 3, -5>
|
||||
position=<-29924, 40330> velocity=< 3, -4>
|
||||
position=<-19918, -9940> velocity=< 2, 1>
|
||||
position=< 50484, -19991> velocity=<-5, 2>
|
||||
position=< 40432, -19999> velocity=<-4, 2>
|
||||
position=<-50072, -9937> velocity=< 5, 1>
|
||||
position=< 30396, -9944> velocity=<-3, 1>
|
||||
position=<-19885, -50160> velocity=< 2, 5>
|
||||
position=< 10273, -9936> velocity=<-1, 1>
|
||||
position=< 50484, -9940> velocity=<-5, 1>
|
||||
position=<-40002, 20226> velocity=< 4, -2>
|
||||
position=<-50045, -50161> velocity=< 5, 5>
|
||||
position=<-29960, 50385> velocity=< 3, -5>
|
||||
position=<-29972, 20219> velocity=< 3, -2>
|
||||
position=< -9837, -9945> velocity=< 1, 1>
|
||||
position=< 30408, -50161> velocity=<-3, 5>
|
||||
position=< 20298, -19997> velocity=<-2, 2>
|
||||
position=<-39985, 10168> velocity=< 4, -1>
|
||||
position=< 50496, 30272> velocity=<-5, -3>
|
||||
position=<-29927, -50157> velocity=< 3, 5>
|
||||
position=<-50076, 50383> velocity=< 5, -5>
|
||||
position=< 30369, -9945> velocity=<-3, 1>
|
||||
position=< 50517, 40334> velocity=<-5, -4>
|
||||
position=<-29946, 10167> velocity=< 3, -1>
|
||||
position=< 30368, -50161> velocity=<-3, 5>
|
||||
position=< 50476, 30280> velocity=<-5, -3>
|
||||
position=< 30373, -30044> velocity=<-3, 3>
|
||||
position=< 10244, 50382> velocity=<-1, -5>
|
||||
position=< 40418, 10167> velocity=<-4, -1>
|
||||
position=<-50048, 50384> velocity=< 5, -5>
|
||||
position=< 50487, -40103> velocity=<-5, 4>
|
||||
position=< -9863, -19990> velocity=< 1, 2>
|
||||
position=< -9836, 30280> velocity=< 1, -3>
|
||||
position=<-50028, -19995> velocity=< 5, 2>
|
||||
position=<-29944, -19990> velocity=< 3, 2>
|
||||
position=< 20333, -9945> velocity=<-2, 1>
|
||||
position=<-50024, 10166> velocity=< 5, -1>
|
||||
position=<-40002, -40104> velocity=< 4, 4>
|
||||
position=< 40424, -40102> velocity=<-4, 4>
|
||||
position=< 10300, -9944> velocity=<-1, 1>
|
||||
position=< -9864, 20218> velocity=< 1, -2>
|
||||
position=<-50043, 20225> velocity=< 5, -2>
|
||||
position=<-40006, -50158> velocity=< 4, 5>
|
||||
position=<-50078, 30280> velocity=< 5, -3>
|
||||
position=< 20318, 40334> velocity=<-2, -4>
|
||||
position=< 40410, -9936> velocity=<-4, 1>
|
||||
position=<-29955, -30047> velocity=< 3, 3>
|
||||
position=<-50022, 30280> velocity=< 5, -3>
|
||||
position=<-19894, 10165> velocity=< 2, -1>
|
||||
position=<-19865, 50382> velocity=< 2, -5>
|
||||
position=<-29924, 50388> velocity=< 3, -5>
|
||||
position=<-39981, 50387> velocity=< 4, -5>
|
||||
position=< 40407, 50388> velocity=<-4, -5>
|
||||
position=<-29924, -40100> velocity=< 3, 4>
|
||||
position=< -9816, -30049> velocity=< 1, 3>
|
||||
position=<-50044, 10168> velocity=< 5, -1>
|
||||
position=< 50493, 40326> velocity=<-5, -4>
|
||||
position=< 30402, -9941> velocity=<-3, 1>
|
||||
position=<-50043, 30277> velocity=< 5, -3>
|
||||
position=< 50516, 30280> velocity=<-5, -3>
|
||||
position=<-29972, -50157> velocity=< 3, 5>
|
||||
position=< 40454, -30048> velocity=<-4, 3>
|
||||
position=< -9853, -9936> velocity=< 1, 1>
|
||||
position=< 40450, -19998> velocity=<-4, 2>
|
||||
position=< 30355, 30280> velocity=<-3, -3>
|
||||
position=<-39975, 30275> velocity=< 4, -3>
|
||||
position=< 50516, 30277> velocity=<-5, -3>
|
||||
position=< 40463, -50157> velocity=<-4, 5>
|
||||
position=< 50497, 30276> velocity=<-5, -3>
|
||||
position=<-29920, -9945> velocity=< 3, 1>
|
||||
position=< 30393, -9944> velocity=<-3, 1>
|
||||
position=< 30372, -19996> velocity=<-3, 2>
|
||||
position=< 20324, -40103> velocity=<-2, 4>
|
||||
position=< 40459, 30274> velocity=<-4, -3>
|
||||
position=< 10268, 50387> velocity=<-1, -5>
|
||||
position=<-50035, 20220> velocity=< 5, -2>
|
||||
position=<-29927, 50386> velocity=< 3, -5>
|
||||
position=<-50037, -30048> velocity=< 5, 3>
|
||||
position=< 20346, 30273> velocity=<-2, -3>
|
||||
position=< 40463, 10172> velocity=<-4, -1>
|
||||
position=< 50465, -40098> velocity=<-5, 4>
|
||||
position=<-19870, 10164> velocity=< 2, -1>
|
||||
position=< 30354, -50157> velocity=<-3, 5>
|
||||
position=< 30404, -19995> velocity=<-3, 2>
|
||||
position=<-50036, -50160> velocity=< 5, 5>
|
||||
position=< -9811, -9942> velocity=< 1, 1>
|
||||
position=<-19897, -40098> velocity=< 2, 4>
|
||||
position=<-19869, -19999> velocity=< 2, 2>
|
||||
position=<-19901, 40325> velocity=< 2, -4>
|
||||
position=<-19890, 30271> velocity=< 2, -3>
|
||||
position=< 30379, -9941> velocity=<-3, 1>
|
||||
position=< 40443, 20223> velocity=<-4, -2>
|
||||
position=< 40416, 30280> velocity=<-4, -3>
|
||||
position=< 40462, -50161> velocity=<-4, 5>
|
||||
position=<-50061, 30271> velocity=< 5, -3>
|
||||
position=<-19901, -30044> velocity=< 2, 3>
|
||||
position=< 40407, -50152> velocity=<-4, 5>
|
||||
position=<-39986, 20223> velocity=< 4, -2>
|
||||
position=<-29927, -30051> velocity=< 3, 3>
|
||||
position=< -9824, 50381> velocity=< 1, -5>
|
||||
position=< 50519, 30280> velocity=<-5, -3>
|
||||
position=< -9816, 30274> velocity=< 1, -3>
|
||||
position=<-39989, -9942> velocity=< 4, 1>
|
||||
position=<-29916, 10169> velocity=< 3, -1>
|
||||
position=< 40440, 40330> velocity=<-4, -4>
|
||||
position=< 20325, 50388> velocity=<-2, -5>
|
||||
position=< -9839, 20221> velocity=< 1, -2>
|
||||
position=<-19860, 20217> velocity=< 2, -2>
|
||||
position=<-40014, -9937> velocity=< 4, 1>
|
||||
position=< 50516, 30273> velocity=<-5, -3>
|
||||
position=<-40014, -50153> velocity=< 4, 5>
|
||||
position=< 30397, -19992> velocity=<-3, 2>
|
||||
position=< 20338, -19992> velocity=<-2, 2>
|
||||
position=< 20310, 30271> velocity=<-2, -3>
|
||||
position=< 10272, 10163> velocity=<-1, -1>
|
||||
position=<-39998, -40103> velocity=< 4, 4>
|
||||
position=< 40454, 40332> velocity=<-4, -4>
|
||||
position=<-29945, 50379> velocity=< 3, -5>
|
||||
position=<-40014, 40328> velocity=< 4, -4>
|
||||
position=< 50508, -40106> velocity=<-5, 4>
|
||||
position=< 40438, 10170> velocity=<-4, -1>
|
||||
position=< 10304, -9945> velocity=<-1, 1>
|
||||
position=< 20338, 40331> velocity=<-2, -4>
|
||||
position=<-19907, -19999> velocity=< 2, 2>
|
||||
position=<-19915, -19999> velocity=< 2, 2>
|
||||
position=<-29932, 40328> velocity=< 3, -4>
|
||||
position=< 50520, 40329> velocity=<-5, -4>
|
||||
position=< 20298, 10171> velocity=<-2, -1>
|
||||
position=<-40007, -30044> velocity=< 4, 3>
|
||||
position=< 30377, -30044> velocity=<-3, 3>
|
||||
position=<-29972, 30276> velocity=< 3, -3>
|
||||
position=< 10287, -30053> velocity=<-1, 3>
|
||||
position=< 20330, 20225> velocity=<-2, -2>
|
||||
position=<-50068, 20224> velocity=< 5, -2>
|
||||
position=< 30352, 20220> velocity=<-3, -2>
|
||||
position=< 40458, 50379> velocity=<-4, -5>
|
||||
position=< 30352, -9941> velocity=<-3, 1>
|
||||
position=<-29972, 50386> velocity=< 3, -5>
|
||||
position=<-50059, -40106> velocity=< 5, 4>
|
||||
position=<-50076, 10172> velocity=< 5, -1>
|
||||
position=< 10268, -9942> velocity=<-1, 1>
|
||||
position=< 30408, 50383> velocity=<-3, -5>
|
||||
position=<-40024, -40107> velocity=< 4, 4>
|
||||
position=< 50495, -50156> velocity=<-5, 5>
|
||||
position=<-39984, 50384> velocity=< 4, -5>
|
||||
position=< -9805, -9945> velocity=< 1, 1>
|
||||
position=< 50460, -30050> velocity=<-5, 3>
|
||||
position=< 30364, -30050> velocity=<-3, 3>
|
||||
position=< 40432, -30053> velocity=<-4, 3>
|
||||
position=< 10300, 50382> velocity=<-1, -5>
|
||||
position=< 30364, -30047> velocity=<-3, 3>
|
||||
position=<-19868, -40107> velocity=< 2, 4>
|
||||
position=<-39976, 40329> velocity=< 4, -4>
|
||||
position=<-29960, 40325> velocity=< 3, -4>
|
||||
position=< 30392, -50156> velocity=<-3, 5>
|
||||
position=< 10284, 50383> velocity=<-1, -5>
|
||||
position=< 50509, -9945> velocity=<-5, 1>
|
||||
position=<-29972, -30053> velocity=< 3, 3>
|
||||
position=< 40424, -19994> velocity=<-4, 2>
|
||||
position=<-40021, 20217> velocity=< 4, -2>
|
||||
position=<-50045, 50384> velocity=< 5, -5>
|
||||
position=< 10249, -30053> velocity=<-1, 3>
|
||||
position=< 20322, 10170> velocity=<-2, -1>
|
||||
position=< 20322, 10164> velocity=<-2, -1>
|
||||
position=<-50043, -30045> velocity=< 5, 3>
|
||||
position=< 30408, -19991> velocity=<-3, 2>
|
||||
position=<-29928, 50384> velocity=< 3, -5>
|
||||
position=< 10284, 30279> velocity=<-1, -3>
|
||||
position=< 40440, 20222> velocity=<-4, -2>
|
||||
position=< 20335, -9938> velocity=<-2, 1>
|
||||
position=<-19857, -19999> velocity=< 2, 2>
|
||||
position=<-40026, 50386> velocity=< 4, -5>
|
||||
position=<-40021, 10163> velocity=< 4, -1>
|
||||
position=< 30371, -50157> velocity=<-3, 5>
|
||||
position=< 50500, -40104> velocity=<-5, 4>
|
||||
position=<-29916, -19994> velocity=< 3, 2>
|
||||
position=<-29924, 20223> velocity=< 3, -2>
|
||||
position=<-39970, 20218> velocity=< 4, -2>
|
||||
position=< 40465, 50383> velocity=<-4, -5>
|
||||
position=<-29940, 40327> velocity=< 3, -4>
|
||||
@ -0,0 +1,173 @@
|
||||
//
|
||||
// Advent of Code 2018 "Day 10: The Stars Align"
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
class Align {
|
||||
var pt: [(Int, Int)] = []
|
||||
var vel: [(Int, Int)] = []
|
||||
|
||||
// Supply filename for input ex: '/home/peterr/AOC2018/Sources/AOC2018/data/day10.txt'
|
||||
init(withFile filename: String) {
|
||||
let starFile = Tools.readFile(fromPath: filename)
|
||||
var starStrings = starFile.components(separatedBy: "\n")
|
||||
// This gurd statement is just an excuse to use guard
|
||||
// I'm assuming the last string is an empty string, if not DON'T remove the last string
|
||||
guard let lastStr = starStrings.last, lastStr.count == 0 else { return }
|
||||
starStrings.removeLast() // empty string
|
||||
parseData(withStars: starStrings)
|
||||
}
|
||||
|
||||
// Supply test data in the form of a String
|
||||
init(withString starFile: String) {
|
||||
let starStrings = starFile.components(separatedBy: "\n")
|
||||
parseData(withStars: starStrings)
|
||||
}
|
||||
|
||||
func parseData(withStars starArray: [String]) {
|
||||
for star in starArray {
|
||||
var line = star
|
||||
line = line.replacingOccurrences(of: "position=<", with: "")
|
||||
line = line.replacingOccurrences(of: "> velocity=<", with: ", ")
|
||||
line = line.replacingOccurrences(of: ">", with: "")
|
||||
line = line.replacingOccurrences(of: " ", with: "")
|
||||
let data = line.components(separatedBy: ",")
|
||||
guard data.count == 4 else { print("Error"); return }
|
||||
pt.append((Int(data[0]) ?? 0, Int(data[1]) ?? 0))
|
||||
vel.append((Int(data[2]) ?? 0, Int(data[3]) ?? 0))
|
||||
}
|
||||
}
|
||||
|
||||
func advanceTime(by n: Int) -> [(Int, Int)] {
|
||||
var newpt: [(Int, Int)] = []
|
||||
for index in 0..<pt.count {
|
||||
let x = pt[index].0 + vel[index].0 * n
|
||||
let y = pt[index].1 + vel[index].1 * n
|
||||
newpt.append((x, y))
|
||||
}
|
||||
return newpt
|
||||
}
|
||||
|
||||
func potentialMessage(withGrid grid: [(Int, Int)]) -> Int {
|
||||
var xs: [Int] = []
|
||||
var ys: [Int] = []
|
||||
for point in grid {
|
||||
xs.append(point.0)
|
||||
ys.append(point.1)
|
||||
}
|
||||
var lineCount = 0
|
||||
for point in grid {
|
||||
lineCount += xs.filter{$0 == point.0}.count
|
||||
lineCount *= ys.filter{$0 == point.1}.count
|
||||
break
|
||||
}
|
||||
if lineCount > 123 {
|
||||
printGrid(points: grid, minX: xs.min()!, maxX: xs.max()!, minY: ys.min()!, maxY: ys.max()!)
|
||||
}
|
||||
return lineCount
|
||||
}
|
||||
|
||||
func printGrid(points: [(Int, Int)], minX: Int, maxX: Int, minY: Int, maxY: Int) {
|
||||
for j in minY-1...maxY+1 {
|
||||
for i in minX-1...maxX+1 {
|
||||
if points.contains(where: { $0.0 == i && $0.1 == j }) {
|
||||
print("XX", terminator: "")
|
||||
} else {
|
||||
print("..", terminator: "")
|
||||
}
|
||||
}
|
||||
print("")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
class Day10: AOCDay {
|
||||
lazy var tests: (() -> ()) = day10Tests
|
||||
lazy var final: (() -> ()) = day10Final
|
||||
|
||||
let testData = """
|
||||
position=< 9, 1> velocity=< 0, 2>
|
||||
position=< 7, 0> velocity=<-1, 0>
|
||||
position=< 3, -2> velocity=<-1, 1>
|
||||
position=< 6, 10> velocity=<-2, -1>
|
||||
position=< 2, -4> velocity=< 2, 2>
|
||||
position=<-6, 10> velocity=< 2, -2>
|
||||
position=< 1, 8> velocity=< 1, -1>
|
||||
position=< 1, 7> velocity=< 1, 0>
|
||||
position=<-3, 11> velocity=< 1, -2>
|
||||
position=< 7, 6> velocity=<-1, -1>
|
||||
position=<-2, 3> velocity=< 1, 0>
|
||||
position=<-4, 3> velocity=< 2, 0>
|
||||
position=<10, -3> velocity=<-1, 1>
|
||||
position=< 5, 11> velocity=< 1, -2>
|
||||
position=< 4, 7> velocity=< 0, -1>
|
||||
position=< 8, -2> velocity=< 0, 1>
|
||||
position=<15, 0> velocity=<-2, 0>
|
||||
position=< 1, 6> velocity=< 1, 0>
|
||||
position=< 8, 9> velocity=< 0, -1>
|
||||
position=< 3, 3> velocity=<-1, 1>
|
||||
position=< 0, 5> velocity=< 0, -1>
|
||||
position=<-2, 2> velocity=< 2, 0>
|
||||
position=< 5, -2> velocity=< 1, 2>
|
||||
position=< 1, 4> velocity=< 2, 1>
|
||||
position=<-2, 7> velocity=< 2, -2>
|
||||
position=< 3, 6> velocity=<-1, -1>
|
||||
position=< 5, 0> velocity=< 1, 0>
|
||||
position=<-6, 0> velocity=< 2, 0>
|
||||
position=< 5, 9> velocity=< 1, -2>
|
||||
position=<14, 7> velocity=<-2, 0>
|
||||
position=<-3, 6> velocity=< 2, -1>
|
||||
"""
|
||||
|
||||
func testAlignInit() {
|
||||
var algn = Align(withString: testData)
|
||||
algn = Align(withFile: "/home/peterr/AOC2018/Sources/AOC2018/data/day10.txt")
|
||||
}
|
||||
|
||||
func testAdvanceTime() {
|
||||
let algn = Align(withString: testData)
|
||||
let newGrid = algn.advanceTime(by: 3)
|
||||
algn.printGrid(points: newGrid, minX: 0, maxX: 9, minY: 0, maxY: 7)
|
||||
}
|
||||
|
||||
func testPotentialMessage() {
|
||||
let algn = Align(withString: testData)
|
||||
var bestTime = 0
|
||||
for time in 0...10 {
|
||||
let newGrid = algn.advanceTime(by: time)
|
||||
let mFactor = algn.potentialMessage(withGrid: newGrid)
|
||||
if mFactor >= 10 {
|
||||
bestTime = time
|
||||
break
|
||||
}
|
||||
}
|
||||
XCTAssertEqual(test: "testPotentialMessage", withExpression: (bestTime == 3))
|
||||
}
|
||||
|
||||
|
||||
func day10Tests() {
|
||||
testAlignInit()
|
||||
testAdvanceTime()
|
||||
testPotentialMessage()
|
||||
}
|
||||
|
||||
func day10Final() {
|
||||
// let retVal = "None"
|
||||
// print("Answer to part 1 is: \(retVal)")
|
||||
var bestTime = 0
|
||||
let algn = Align(withFile: "/home/peterr/AOC2018/Sources/AOC2018/data/day10.txt")
|
||||
for time in 0...100000 {
|
||||
let newGrid = algn.advanceTime(by: time)
|
||||
let mFactor = algn.potentialMessage(withGrid: newGrid)
|
||||
if mFactor > 123 {
|
||||
// print("mFactor [\(time)] = \(mFactor), time = \(time)")
|
||||
bestTime = time
|
||||
break
|
||||
}
|
||||
}
|
||||
print("Answer to part 2 is: \(bestTime)")
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue