2022 Day 14 Complete!
This commit is contained in:
parent
6d22393da3
commit
194d2875a8
129
2022/day14/input
Normal file
129
2022/day14/input
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
490,51 -> 490,54 -> 486,54 -> 486,59 -> 499,59 -> 499,54 -> 492,54 -> 492,51
|
||||||
|
476,161 -> 476,156 -> 476,161 -> 478,161 -> 478,160 -> 478,161 -> 480,161 -> 480,154 -> 480,161 -> 482,161 -> 482,155 -> 482,161 -> 484,161 -> 484,158 -> 484,161 -> 486,161 -> 486,159 -> 486,161
|
||||||
|
472,79 -> 472,73 -> 472,79 -> 474,79 -> 474,69 -> 474,79 -> 476,79 -> 476,77 -> 476,79
|
||||||
|
477,148 -> 477,138 -> 477,148 -> 479,148 -> 479,144 -> 479,148 -> 481,148 -> 481,146 -> 481,148
|
||||||
|
484,132 -> 489,132
|
||||||
|
501,15 -> 506,15
|
||||||
|
485,85 -> 485,88 -> 482,88 -> 482,93 -> 499,93 -> 499,88 -> 491,88 -> 491,85
|
||||||
|
472,79 -> 472,73 -> 472,79 -> 474,79 -> 474,69 -> 474,79 -> 476,79 -> 476,77 -> 476,79
|
||||||
|
503,43 -> 514,43 -> 514,42
|
||||||
|
497,13 -> 502,13
|
||||||
|
490,51 -> 490,54 -> 486,54 -> 486,59 -> 499,59 -> 499,54 -> 492,54 -> 492,51
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
498,17 -> 503,17
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
490,51 -> 490,54 -> 486,54 -> 486,59 -> 499,59 -> 499,54 -> 492,54 -> 492,51
|
||||||
|
467,81 -> 467,82 -> 487,82 -> 487,81
|
||||||
|
481,135 -> 486,135
|
||||||
|
485,85 -> 485,88 -> 482,88 -> 482,93 -> 499,93 -> 499,88 -> 491,88 -> 491,85
|
||||||
|
476,161 -> 476,156 -> 476,161 -> 478,161 -> 478,160 -> 478,161 -> 480,161 -> 480,154 -> 480,161 -> 482,161 -> 482,155 -> 482,161 -> 484,161 -> 484,158 -> 484,161 -> 486,161 -> 486,159 -> 486,161
|
||||||
|
470,122 -> 470,123 -> 485,123 -> 485,122
|
||||||
|
491,132 -> 496,132
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
476,161 -> 476,156 -> 476,161 -> 478,161 -> 478,160 -> 478,161 -> 480,161 -> 480,154 -> 480,161 -> 482,161 -> 482,155 -> 482,161 -> 484,161 -> 484,158 -> 484,161 -> 486,161 -> 486,159 -> 486,161
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
491,17 -> 496,17
|
||||||
|
476,161 -> 476,156 -> 476,161 -> 478,161 -> 478,160 -> 478,161 -> 480,161 -> 480,154 -> 480,161 -> 482,161 -> 482,155 -> 482,161 -> 484,161 -> 484,158 -> 484,161 -> 486,161 -> 486,159 -> 486,161
|
||||||
|
497,26 -> 501,26
|
||||||
|
476,161 -> 476,156 -> 476,161 -> 478,161 -> 478,160 -> 478,161 -> 480,161 -> 480,154 -> 480,161 -> 482,161 -> 482,155 -> 482,161 -> 484,161 -> 484,158 -> 484,161 -> 486,161 -> 486,159 -> 486,161
|
||||||
|
491,22 -> 495,22
|
||||||
|
477,148 -> 477,138 -> 477,148 -> 479,148 -> 479,144 -> 479,148 -> 481,148 -> 481,146 -> 481,148
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
476,161 -> 476,156 -> 476,161 -> 478,161 -> 478,160 -> 478,161 -> 480,161 -> 480,154 -> 480,161 -> 482,161 -> 482,155 -> 482,161 -> 484,161 -> 484,158 -> 484,161 -> 486,161 -> 486,159 -> 486,161
|
||||||
|
480,129 -> 485,129
|
||||||
|
490,51 -> 490,54 -> 486,54 -> 486,59 -> 499,59 -> 499,54 -> 492,54 -> 492,51
|
||||||
|
477,132 -> 482,132
|
||||||
|
477,148 -> 477,138 -> 477,148 -> 479,148 -> 479,144 -> 479,148 -> 481,148 -> 481,146 -> 481,148
|
||||||
|
476,161 -> 476,156 -> 476,161 -> 478,161 -> 478,160 -> 478,161 -> 480,161 -> 480,154 -> 480,161 -> 482,161 -> 482,155 -> 482,161 -> 484,161 -> 484,158 -> 484,161 -> 486,161 -> 486,159 -> 486,161
|
||||||
|
488,20 -> 492,20
|
||||||
|
492,48 -> 506,48 -> 506,47
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
477,148 -> 477,138 -> 477,148 -> 479,148 -> 479,144 -> 479,148 -> 481,148 -> 481,146 -> 481,148
|
||||||
|
474,135 -> 479,135
|
||||||
|
479,64 -> 484,64
|
||||||
|
510,29 -> 510,33 -> 506,33 -> 506,39 -> 517,39 -> 517,33 -> 512,33 -> 512,29
|
||||||
|
486,64 -> 491,64
|
||||||
|
490,66 -> 495,66
|
||||||
|
476,161 -> 476,156 -> 476,161 -> 478,161 -> 478,160 -> 478,161 -> 480,161 -> 480,154 -> 480,161 -> 482,161 -> 482,155 -> 482,161 -> 484,161 -> 484,158 -> 484,161 -> 486,161 -> 486,159 -> 486,161
|
||||||
|
472,79 -> 472,73 -> 472,79 -> 474,79 -> 474,69 -> 474,79 -> 476,79 -> 476,77 -> 476,79
|
||||||
|
494,24 -> 498,24
|
||||||
|
476,161 -> 476,156 -> 476,161 -> 478,161 -> 478,160 -> 478,161 -> 480,161 -> 480,154 -> 480,161 -> 482,161 -> 482,155 -> 482,161 -> 484,161 -> 484,158 -> 484,161 -> 486,161 -> 486,159 -> 486,161
|
||||||
|
471,109 -> 471,112 -> 467,112 -> 467,120 -> 477,120 -> 477,112 -> 475,112 -> 475,109
|
||||||
|
503,43 -> 514,43 -> 514,42
|
||||||
|
477,148 -> 477,138 -> 477,148 -> 479,148 -> 479,144 -> 479,148 -> 481,148 -> 481,146 -> 481,148
|
||||||
|
485,85 -> 485,88 -> 482,88 -> 482,93 -> 499,93 -> 499,88 -> 491,88 -> 491,85
|
||||||
|
476,161 -> 476,156 -> 476,161 -> 478,161 -> 478,160 -> 478,161 -> 480,161 -> 480,154 -> 480,161 -> 482,161 -> 482,155 -> 482,161 -> 484,161 -> 484,158 -> 484,161 -> 486,161 -> 486,159 -> 486,161
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
510,29 -> 510,33 -> 506,33 -> 506,39 -> 517,39 -> 517,33 -> 512,33 -> 512,29
|
||||||
|
488,135 -> 493,135
|
||||||
|
472,79 -> 472,73 -> 472,79 -> 474,79 -> 474,69 -> 474,79 -> 476,79 -> 476,77 -> 476,79
|
||||||
|
467,81 -> 467,82 -> 487,82 -> 487,81
|
||||||
|
483,126 -> 488,126
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
483,66 -> 488,66
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
477,148 -> 477,138 -> 477,148 -> 479,148 -> 479,144 -> 479,148 -> 481,148 -> 481,146 -> 481,148
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
476,161 -> 476,156 -> 476,161 -> 478,161 -> 478,160 -> 478,161 -> 480,161 -> 480,154 -> 480,161 -> 482,161 -> 482,155 -> 482,161 -> 484,161 -> 484,158 -> 484,161 -> 486,161 -> 486,159 -> 486,161
|
||||||
|
476,66 -> 481,66
|
||||||
|
472,79 -> 472,73 -> 472,79 -> 474,79 -> 474,69 -> 474,79 -> 476,79 -> 476,77 -> 476,79
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
476,161 -> 476,156 -> 476,161 -> 478,161 -> 478,160 -> 478,161 -> 480,161 -> 480,154 -> 480,161 -> 482,161 -> 482,155 -> 482,161 -> 484,161 -> 484,158 -> 484,161 -> 486,161 -> 486,159 -> 486,161
|
||||||
|
494,15 -> 499,15
|
||||||
|
476,161 -> 476,156 -> 476,161 -> 478,161 -> 478,160 -> 478,161 -> 480,161 -> 480,154 -> 480,161 -> 482,161 -> 482,155 -> 482,161 -> 484,161 -> 484,158 -> 484,161 -> 486,161 -> 486,159 -> 486,161
|
||||||
|
476,161 -> 476,156 -> 476,161 -> 478,161 -> 478,160 -> 478,161 -> 480,161 -> 480,154 -> 480,161 -> 482,161 -> 482,155 -> 482,161 -> 484,161 -> 484,158 -> 484,161 -> 486,161 -> 486,159 -> 486,161
|
||||||
|
485,85 -> 485,88 -> 482,88 -> 482,93 -> 499,93 -> 499,88 -> 491,88 -> 491,85
|
||||||
|
485,22 -> 489,22
|
||||||
|
487,129 -> 492,129
|
||||||
|
477,148 -> 477,138 -> 477,148 -> 479,148 -> 479,144 -> 479,148 -> 481,148 -> 481,146 -> 481,148
|
||||||
|
471,109 -> 471,112 -> 467,112 -> 467,120 -> 477,120 -> 477,112 -> 475,112 -> 475,109
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
485,85 -> 485,88 -> 482,88 -> 482,93 -> 499,93 -> 499,88 -> 491,88 -> 491,85
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
488,24 -> 492,24
|
||||||
|
490,51 -> 490,54 -> 486,54 -> 486,59 -> 499,59 -> 499,54 -> 492,54 -> 492,51
|
||||||
|
472,79 -> 472,73 -> 472,79 -> 474,79 -> 474,69 -> 474,79 -> 476,79 -> 476,77 -> 476,79
|
||||||
|
476,161 -> 476,156 -> 476,161 -> 478,161 -> 478,160 -> 478,161 -> 480,161 -> 480,154 -> 480,161 -> 482,161 -> 482,155 -> 482,161 -> 484,161 -> 484,158 -> 484,161 -> 486,161 -> 486,159 -> 486,161
|
||||||
|
485,85 -> 485,88 -> 482,88 -> 482,93 -> 499,93 -> 499,88 -> 491,88 -> 491,85
|
||||||
|
472,79 -> 472,73 -> 472,79 -> 474,79 -> 474,69 -> 474,79 -> 476,79 -> 476,77 -> 476,79
|
||||||
|
477,148 -> 477,138 -> 477,148 -> 479,148 -> 479,144 -> 479,148 -> 481,148 -> 481,146 -> 481,148
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
510,29 -> 510,33 -> 506,33 -> 506,39 -> 517,39 -> 517,33 -> 512,33 -> 512,29
|
||||||
|
495,135 -> 500,135
|
||||||
|
471,109 -> 471,112 -> 467,112 -> 467,120 -> 477,120 -> 477,112 -> 475,112 -> 475,109
|
||||||
|
510,29 -> 510,33 -> 506,33 -> 506,39 -> 517,39 -> 517,33 -> 512,33 -> 512,29
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
471,109 -> 471,112 -> 467,112 -> 467,120 -> 477,120 -> 477,112 -> 475,112 -> 475,109
|
||||||
|
482,24 -> 486,24
|
||||||
|
471,109 -> 471,112 -> 467,112 -> 467,120 -> 477,120 -> 477,112 -> 475,112 -> 475,109
|
||||||
|
510,29 -> 510,33 -> 506,33 -> 506,39 -> 517,39 -> 517,33 -> 512,33 -> 512,29
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
491,26 -> 495,26
|
||||||
|
470,122 -> 470,123 -> 485,123 -> 485,122
|
||||||
|
505,17 -> 510,17
|
||||||
|
470,122 -> 470,123 -> 485,123 -> 485,122
|
||||||
|
510,29 -> 510,33 -> 506,33 -> 506,39 -> 517,39 -> 517,33 -> 512,33 -> 512,29
|
||||||
|
485,26 -> 489,26
|
||||||
|
471,109 -> 471,112 -> 467,112 -> 467,120 -> 477,120 -> 477,112 -> 475,112 -> 475,109
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
471,109 -> 471,112 -> 467,112 -> 467,120 -> 477,120 -> 477,112 -> 475,112 -> 475,109
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
485,85 -> 485,88 -> 482,88 -> 482,93 -> 499,93 -> 499,88 -> 491,88 -> 491,85
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
472,79 -> 472,73 -> 472,79 -> 474,79 -> 474,69 -> 474,79 -> 476,79 -> 476,77 -> 476,79
|
||||||
|
510,29 -> 510,33 -> 506,33 -> 506,39 -> 517,39 -> 517,33 -> 512,33 -> 512,29
|
||||||
|
467,81 -> 467,82 -> 487,82 -> 487,81
|
||||||
|
479,26 -> 483,26
|
||||||
|
492,48 -> 506,48 -> 506,47
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
||||||
|
476,161 -> 476,156 -> 476,161 -> 478,161 -> 478,160 -> 478,161 -> 480,161 -> 480,154 -> 480,161 -> 482,161 -> 482,155 -> 482,161 -> 484,161 -> 484,158 -> 484,161 -> 486,161 -> 486,159 -> 486,161
|
||||||
|
490,51 -> 490,54 -> 486,54 -> 486,59 -> 499,59 -> 499,54 -> 492,54 -> 492,51
|
||||||
|
482,62 -> 487,62
|
||||||
|
476,161 -> 476,156 -> 476,161 -> 478,161 -> 478,160 -> 478,161 -> 480,161 -> 480,154 -> 480,161 -> 482,161 -> 482,155 -> 482,161 -> 484,161 -> 484,158 -> 484,161 -> 486,161 -> 486,159 -> 486,161
|
||||||
|
490,51 -> 490,54 -> 486,54 -> 486,59 -> 499,59 -> 499,54 -> 492,54 -> 492,51
|
||||||
|
457,106 -> 457,99 -> 457,106 -> 459,106 -> 459,98 -> 459,106 -> 461,106 -> 461,97 -> 461,106 -> 463,106 -> 463,105 -> 463,106 -> 465,106 -> 465,99 -> 465,106 -> 467,106 -> 467,103 -> 467,106 -> 469,106 -> 469,101 -> 469,106 -> 471,106 -> 471,103 -> 471,106 -> 473,106 -> 473,100 -> 473,106
|
180
2022/day14/main.go
Normal file
180
2022/day14/main.go
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
h "git.bullercodeworks.com/brian/adventofcode/helpers"
|
||||||
|
)
|
||||||
|
|
||||||
|
var debug bool
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
inp := h.StdinToStringSlice()
|
||||||
|
part1(inp)
|
||||||
|
part2(inp)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Check(spot h.Coordinate, walls, sand *h.CoordByteMap) byte {
|
||||||
|
if v := walls.Get(spot); v != 0 {
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
return sand.Get(spot)
|
||||||
|
}
|
||||||
|
|
||||||
|
func part1(inp []string) {
|
||||||
|
m := BuildMap(inp)
|
||||||
|
// Now start dropping sand
|
||||||
|
var err error
|
||||||
|
for err == nil {
|
||||||
|
entry := &h.Coordinate{X: 500, Y: 0}
|
||||||
|
err = Drop(entry, m)
|
||||||
|
if err != nil {
|
||||||
|
} else {
|
||||||
|
m.Put(*entry, 'o')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fmt.Println("# Part 1")
|
||||||
|
fmt.Println(m.Count('o'), "grains of sand")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Drop 'grain' into the field described by 'walls', and 'sand'
|
||||||
|
// It returns the path that it took
|
||||||
|
// If it flows off the map, error is returned
|
||||||
|
func Drop(grain *h.Coordinate, m *h.CoordByteMap) error {
|
||||||
|
var path []h.Coordinate
|
||||||
|
prevX, prevY := grain.X, grain.Y
|
||||||
|
for {
|
||||||
|
if grain.South().Y > m.BRY {
|
||||||
|
return errors.New("Overflow")
|
||||||
|
} else if m.Get(grain.South()) == 0 {
|
||||||
|
path = append(path, grain.South())
|
||||||
|
grain.MoveSouth()
|
||||||
|
} else if m.Get(grain.SW()) == 0 {
|
||||||
|
path = append(path, grain.SW())
|
||||||
|
grain.MoveSW()
|
||||||
|
} else if m.Get(grain.SE()) == 0 {
|
||||||
|
path = append(path, grain.SE())
|
||||||
|
grain.MoveSE()
|
||||||
|
}
|
||||||
|
if debug {
|
||||||
|
fmt.Println(h.CLEAR_SCREEN)
|
||||||
|
m.Put(*grain, 'o')
|
||||||
|
fmt.Println(m)
|
||||||
|
m.Delete(*grain)
|
||||||
|
time.Sleep(time.Second / 100)
|
||||||
|
}
|
||||||
|
// Grain didn't move, must be at rest
|
||||||
|
if grain.X == prevX && grain.Y == prevY {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
prevX, prevY = grain.X, grain.Y
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func part2(inp []string) {
|
||||||
|
m := BuildMap(inp)
|
||||||
|
m.BRY += 1
|
||||||
|
// Now start dropping sand
|
||||||
|
var err error
|
||||||
|
for err == nil {
|
||||||
|
entry := &h.Coordinate{X: 500, Y: 0}
|
||||||
|
err = Drop2(entry, m)
|
||||||
|
m.Put(*entry, 'o')
|
||||||
|
}
|
||||||
|
fmt.Println("# Part 2")
|
||||||
|
fmt.Println(m.Count('o'), "grains of sand")
|
||||||
|
}
|
||||||
|
func Drop2(grain *h.Coordinate, m *h.CoordByteMap) error {
|
||||||
|
var path []h.Coordinate
|
||||||
|
prevX, prevY := grain.X, grain.Y
|
||||||
|
var moved bool
|
||||||
|
for {
|
||||||
|
if grain.Y == m.BRY {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if m.Get(grain.South()) == 0 {
|
||||||
|
path = append(path, grain.South())
|
||||||
|
grain.MoveSouth()
|
||||||
|
moved = true
|
||||||
|
} else if m.Get(grain.SW()) == 0 {
|
||||||
|
path = append(path, grain.SW())
|
||||||
|
grain.MoveSW()
|
||||||
|
moved = true
|
||||||
|
} else if m.Get(grain.SE()) == 0 {
|
||||||
|
path = append(path, grain.SE())
|
||||||
|
grain.MoveSE()
|
||||||
|
moved = true
|
||||||
|
}
|
||||||
|
if debug {
|
||||||
|
fmt.Println(h.CLEAR_SCREEN)
|
||||||
|
m.Put(*grain, 'o')
|
||||||
|
fmt.Println(m)
|
||||||
|
m.Delete(*grain)
|
||||||
|
time.Sleep(time.Second / 100)
|
||||||
|
}
|
||||||
|
if grain.X == prevX && grain.Y == prevY {
|
||||||
|
// Grain didn't move, must be at rest
|
||||||
|
if !moved {
|
||||||
|
return errors.New("Full")
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
prevX, prevY = grain.X, grain.Y
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func BuildMap(inp []string) *h.CoordByteMap {
|
||||||
|
m := h.NewCoordByteMap()
|
||||||
|
m.TLY = 0
|
||||||
|
m.StringEmptyIsSpace = true
|
||||||
|
m.StringEmptyByte = '.'
|
||||||
|
for i := range inp {
|
||||||
|
var start, end *h.Coordinate
|
||||||
|
pts := strings.Split(inp[i], " -> ")
|
||||||
|
for j := range pts {
|
||||||
|
if start == nil {
|
||||||
|
start = h.CoordinateFromString(pts[j])
|
||||||
|
} else if end == nil {
|
||||||
|
end = h.CoordinateFromString(pts[j])
|
||||||
|
}
|
||||||
|
if start != nil && end != nil {
|
||||||
|
puts := GetLine(start, end)
|
||||||
|
for _, coord := range puts {
|
||||||
|
m.Put(*coord, '#')
|
||||||
|
}
|
||||||
|
start, end = end, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return &m
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetLine(c1, c2 *h.Coordinate) []*h.Coordinate {
|
||||||
|
var ret []*h.Coordinate
|
||||||
|
if c1.X == c2.X {
|
||||||
|
if c1.Y < c2.Y {
|
||||||
|
for y := c1.Y; y <= c2.Y; y++ {
|
||||||
|
ret = append(ret, &h.Coordinate{X: c1.X, Y: y})
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
} else if c1.Y > c2.Y {
|
||||||
|
for y := c2.Y; y <= c1.Y; y++ {
|
||||||
|
ret = append(ret, &h.Coordinate{X: c1.X, Y: y})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if c1.Y == c2.Y {
|
||||||
|
if c1.X < c2.X {
|
||||||
|
for x := c1.X; x <= c2.X; x++ {
|
||||||
|
ret = append(ret, &h.Coordinate{X: x, Y: c1.Y})
|
||||||
|
}
|
||||||
|
} else if c1.X > c2.X {
|
||||||
|
for x := c2.X; x <= c1.X; x++ {
|
||||||
|
ret = append(ret, &h.Coordinate{X: x, Y: c1.Y})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}
|
213
2022/day14/problem
Normal file
213
2022/day14/problem
Normal file
@ -0,0 +1,213 @@
|
|||||||
|
Advent of Code
|
||||||
|
br0xen (AoC++) 28*
|
||||||
|
|
||||||
|
--- Day 14: Regolith Reservoir ---
|
||||||
|
|
||||||
|
The distress signal leads you to a giant waterfall! Actually, hang on - the signal seems like it's coming from the
|
||||||
|
waterfall itself, and that doesn't make any sense. However, you do notice a little path that leads behind the waterfall.
|
||||||
|
|
||||||
|
Correction: the distress signal leads you behind a giant waterfall! There seems to be a large cave system here, and the
|
||||||
|
signal definitely leads further inside.
|
||||||
|
|
||||||
|
As you begin to make your way deeper underground, you feel the ground rumble for a moment. Sand begins pouring into the
|
||||||
|
cave! If you don't quickly figure out where the sand is going, you could quickly become trapped!
|
||||||
|
|
||||||
|
Fortunately, your familiarity with analyzing the path of falling material will come in handy here. You scan a
|
||||||
|
two-dimensional vertical slice of the cave above you (your puzzle input) and discover that it is mostly air with
|
||||||
|
structures made of rock.
|
||||||
|
|
||||||
|
Your scan traces the path of each solid rock structure and reports the x,y coordinates that form the shape of the path,
|
||||||
|
where x represents distance to the right and y represents distance down. Each path appears as a single line of text in
|
||||||
|
your scan. After the first point of each path, each point indicates the end of a straight horizontal or vertical line to
|
||||||
|
be drawn from the previous point. For example:
|
||||||
|
|
||||||
|
498,4 -> 498,6 -> 496,6
|
||||||
|
503,4 -> 502,4 -> 502,9 -> 494,9
|
||||||
|
|
||||||
|
This scan means that there are two paths of rock; the first path consists of two straight lines, and the second path
|
||||||
|
consists of three straight lines. (Specifically, the first path consists of a line of rock from 498,4 through 498,6 and
|
||||||
|
another line of rock from 498,6 through 496,6.)
|
||||||
|
|
||||||
|
The sand is pouring into the cave from point 500,0.
|
||||||
|
|
||||||
|
Drawing rock as #, air as ., and the source of the sand as +, this becomes:
|
||||||
|
|
||||||
|
4 5 5
|
||||||
|
9 0 0
|
||||||
|
4 0 3
|
||||||
|
0 ......+...
|
||||||
|
1 ..........
|
||||||
|
2 ..........
|
||||||
|
3 ..........
|
||||||
|
4 ....#...##
|
||||||
|
5 ....#...#.
|
||||||
|
6 ..###...#.
|
||||||
|
7 ........#.
|
||||||
|
8 ........#.
|
||||||
|
9 #########.
|
||||||
|
|
||||||
|
Sand is produced one unit at a time, and the next unit of sand is not produced until the previous unit of sand comes to
|
||||||
|
rest. A unit of sand is large enough to fill one tile of air in your scan.
|
||||||
|
|
||||||
|
A unit of sand always falls down one step if possible. If the tile immediately below is blocked (by rock or sand), the
|
||||||
|
unit of sand attempts to instead move diagonally one step down and to the left. If that tile is blocked, the unit of
|
||||||
|
sand attempts to instead move diagonally one step down and to the right. Sand keeps moving as long as it is able to do
|
||||||
|
so, at each step trying to move down, then down-left, then down-right. If all three possible destinations are blocked,
|
||||||
|
the unit of sand comes to rest and no longer moves, at which point the next unit of sand is created back at the source.
|
||||||
|
|
||||||
|
So, drawing sand that has come to rest as o, the first unit of sand simply falls straight down and then stops:
|
||||||
|
|
||||||
|
......+...
|
||||||
|
..........
|
||||||
|
..........
|
||||||
|
..........
|
||||||
|
....#...##
|
||||||
|
....#...#.
|
||||||
|
..###...#.
|
||||||
|
........#.
|
||||||
|
......o.#.
|
||||||
|
#########.
|
||||||
|
|
||||||
|
The second unit of sand then falls straight down, lands on the first one, and then comes to rest to its left:
|
||||||
|
|
||||||
|
......+...
|
||||||
|
..........
|
||||||
|
..........
|
||||||
|
..........
|
||||||
|
....#...##
|
||||||
|
....#...#.
|
||||||
|
..###...#.
|
||||||
|
........#.
|
||||||
|
.....oo.#.
|
||||||
|
#########.
|
||||||
|
|
||||||
|
After a total of five units of sand have come to rest, they form this pattern:
|
||||||
|
|
||||||
|
......+...
|
||||||
|
..........
|
||||||
|
..........
|
||||||
|
..........
|
||||||
|
....#...##
|
||||||
|
....#...#.
|
||||||
|
..###...#.
|
||||||
|
......o.#.
|
||||||
|
....oooo#.
|
||||||
|
#########.
|
||||||
|
|
||||||
|
After a total of 22 units of sand:
|
||||||
|
|
||||||
|
......+...
|
||||||
|
..........
|
||||||
|
......o...
|
||||||
|
.....ooo..
|
||||||
|
....#ooo##
|
||||||
|
....#ooo#.
|
||||||
|
..###ooo#.
|
||||||
|
....oooo#.
|
||||||
|
...ooooo#.
|
||||||
|
#########.
|
||||||
|
|
||||||
|
Finally, only two more units of sand can possibly come to rest:
|
||||||
|
|
||||||
|
......+...
|
||||||
|
..........
|
||||||
|
......o...
|
||||||
|
.....ooo..
|
||||||
|
....#ooo##
|
||||||
|
...o#ooo#.
|
||||||
|
..###ooo#.
|
||||||
|
....oooo#.
|
||||||
|
.o.ooooo#.
|
||||||
|
#########.
|
||||||
|
|
||||||
|
Once all 24 units of sand shown above have come to rest, all further sand flows out the bottom, falling into the endless
|
||||||
|
void. Just for fun, the path any new sand takes before falling forever is shown here with ~:
|
||||||
|
|
||||||
|
.......+...
|
||||||
|
.......~...
|
||||||
|
......~o...
|
||||||
|
.....~ooo..
|
||||||
|
....~#ooo##
|
||||||
|
...~o#ooo#.
|
||||||
|
..~###ooo#.
|
||||||
|
..~..oooo#.
|
||||||
|
.~o.ooooo#.
|
||||||
|
~#########.
|
||||||
|
~..........
|
||||||
|
~..........
|
||||||
|
~..........
|
||||||
|
|
||||||
|
Using your scan, simulate the falling sand. How many units of sand come to rest before sand starts flowing into the
|
||||||
|
abyss below?
|
||||||
|
|
||||||
|
Your puzzle answer was 757.
|
||||||
|
|
||||||
|
--- Part Two ---
|
||||||
|
|
||||||
|
You realize you misread the scan. There isn't an endless void at the bottom of the scan - there's floor, and you're
|
||||||
|
standing on it!
|
||||||
|
|
||||||
|
You don't have time to scan the floor, so assume the floor is an infinite horizontal line with a y coordinate equal to
|
||||||
|
two plus the highest y coordinate of any point in your scan.
|
||||||
|
|
||||||
|
In the example above, the highest y coordinate of any point is 9, and so the floor is at y=11. (This is as if your scan
|
||||||
|
contained one extra rock path like -infinity,11 -> infinity,11.) With the added floor, the example above now looks like
|
||||||
|
this:
|
||||||
|
|
||||||
|
...........+........
|
||||||
|
....................
|
||||||
|
....................
|
||||||
|
....................
|
||||||
|
.........#...##.....
|
||||||
|
.........#...#......
|
||||||
|
.......###...#......
|
||||||
|
.............#......
|
||||||
|
.............#......
|
||||||
|
.....#########......
|
||||||
|
....................
|
||||||
|
<-- etc #################### etc -->
|
||||||
|
|
||||||
|
To find somewhere safe to stand, you'll need to simulate falling sand until a unit of sand comes to rest at 500,0,
|
||||||
|
blocking the source entirely and stopping the flow of sand into the cave. In the example above, the situation finally
|
||||||
|
looks like this after 93 units of sand come to rest:
|
||||||
|
|
||||||
|
............o............
|
||||||
|
...........ooo...........
|
||||||
|
..........ooooo..........
|
||||||
|
.........ooooooo.........
|
||||||
|
........oo#ooo##o........
|
||||||
|
.......ooo#ooo#ooo.......
|
||||||
|
......oo###ooo#oooo......
|
||||||
|
.....oooo.oooo#ooooo.....
|
||||||
|
....oooooooooo#oooooo....
|
||||||
|
...ooo#########ooooooo...
|
||||||
|
..ooooo.......ooooooooo..
|
||||||
|
#########################
|
||||||
|
|
||||||
|
Using your scan, simulate the falling sand until the source of the sand becomes blocked. How many units of sand come to
|
||||||
|
rest?
|
||||||
|
|
||||||
|
Your puzzle answer was 24943.
|
||||||
|
|
||||||
|
Both parts of this puzzle are complete! They provide two gold stars: **
|
||||||
|
|
||||||
|
References
|
||||||
|
|
||||||
|
Visible links
|
||||||
|
. https://adventofcode.com/
|
||||||
|
. https://adventofcode.com/2022/about
|
||||||
|
. https://adventofcode.com/2022/events
|
||||||
|
. https://adventofcode.com/2022/settings
|
||||||
|
. https://adventofcode.com/2022/auth/logout
|
||||||
|
. Advent of Code Supporter
|
||||||
|
https://adventofcode.com/2022/support
|
||||||
|
. https://adventofcode.com/2022
|
||||||
|
. https://adventofcode.com/2022
|
||||||
|
. https://adventofcode.com/2022/support
|
||||||
|
. https://adventofcode.com/2022/sponsors
|
||||||
|
. https://adventofcode.com/2022/leaderboard
|
||||||
|
. https://adventofcode.com/2022/stats
|
||||||
|
. https://adventofcode.com/2022/sponsors
|
||||||
|
. https://adventofcode.com/2018/day/17
|
||||||
|
. https://adventofcode.com/2022
|
||||||
|
. https://adventofcode.com/2022/day/14/input
|
2
2022/day14/testinput
Normal file
2
2022/day14/testinput
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
498,4 -> 498,6 -> 496,6
|
||||||
|
503,4 -> 502,4 -> 502,9 -> 494,9
|
@ -18,6 +18,27 @@ func (c Coordinate) Relative(t Coordinate) Coordinate {
|
|||||||
return Coordinate{X: c.X + t.X, Y: c.Y + t.Y}
|
return Coordinate{X: c.X + t.X, Y: c.Y + t.Y}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *Coordinate) MoveSouth() { c.Y++ }
|
||||||
|
func (c *Coordinate) MoveNorth() { c.Y-- }
|
||||||
|
func (c *Coordinate) MoveEast() { c.X++ }
|
||||||
|
func (c *Coordinate) MoveWest() { c.X-- }
|
||||||
|
func (c *Coordinate) MoveNE() {
|
||||||
|
c.X++
|
||||||
|
c.Y--
|
||||||
|
}
|
||||||
|
func (c *Coordinate) MoveSE() {
|
||||||
|
c.X++
|
||||||
|
c.Y++
|
||||||
|
}
|
||||||
|
func (c *Coordinate) MoveSW() {
|
||||||
|
c.X--
|
||||||
|
c.Y++
|
||||||
|
}
|
||||||
|
func (c *Coordinate) MoveNW() {
|
||||||
|
c.X--
|
||||||
|
c.Y--
|
||||||
|
}
|
||||||
|
|
||||||
func (c Coordinate) North() Coordinate {
|
func (c Coordinate) North() Coordinate {
|
||||||
return Coordinate{X: c.X, Y: c.Y - 1}
|
return Coordinate{X: c.X, Y: c.Y - 1}
|
||||||
}
|
}
|
||||||
@ -75,6 +96,9 @@ func CoordinateFromString(str string) *Coordinate {
|
|||||||
c := Coordinate{}
|
c := Coordinate{}
|
||||||
r := strings.NewReader(str)
|
r := strings.NewReader(str)
|
||||||
_, err := fmt.Fscanf(r, "[%d, %d]", &c.X, &c.Y)
|
_, err := fmt.Fscanf(r, "[%d, %d]", &c.X, &c.Y)
|
||||||
|
if err != nil {
|
||||||
|
_, err = fmt.Fscanf(r, "%d,%d", &c.X, &c.Y)
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package aoc
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"math"
|
||||||
)
|
)
|
||||||
|
|
||||||
type CoordByteMap struct {
|
type CoordByteMap struct {
|
||||||
@ -14,11 +15,20 @@ type CoordByteMap struct {
|
|||||||
TLX, TLY int
|
TLX, TLY int
|
||||||
// The Bottom-Right-most X/Y
|
// The Bottom-Right-most X/Y
|
||||||
BRX, BRY int
|
BRX, BRY int
|
||||||
|
|
||||||
|
// Options for the 'String' method
|
||||||
|
StringEmptyIsSpace bool
|
||||||
|
StringEmptyByte byte
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewCoordByteMap() CoordByteMap {
|
func NewCoordByteMap() CoordByteMap {
|
||||||
return CoordByteMap{
|
return CoordByteMap{
|
||||||
Field: make(map[Coordinate]byte),
|
Field: make(map[Coordinate]byte),
|
||||||
|
TLX: math.MaxInt,
|
||||||
|
TLY: math.MaxInt,
|
||||||
|
BRX: math.MinInt,
|
||||||
|
BRY: math.MinInt,
|
||||||
|
StringEmptyByte: ' ',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,6 +206,9 @@ func (m *CoordByteMap) Put(pos Coordinate, val byte) {
|
|||||||
m.Height = m.BRY - m.TLY + 1
|
m.Height = m.BRY - m.TLY + 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
func (m *CoordByteMap) Delete(pos Coordinate) {
|
||||||
|
delete(m.Field, pos)
|
||||||
|
}
|
||||||
|
|
||||||
func (m *CoordByteMap) GrowNorth(size int, val byte) {
|
func (m *CoordByteMap) GrowNorth(size int, val byte) {
|
||||||
tlY := m.TLY - 1
|
tlY := m.TLY - 1
|
||||||
@ -249,8 +262,12 @@ func (m CoordByteMap) String() string {
|
|||||||
var ret string
|
var ret string
|
||||||
for y := m.TLY; y <= m.BRY; y++ {
|
for y := m.TLY; y <= m.BRY; y++ {
|
||||||
for x := m.TLX; x <= m.BRX; x++ {
|
for x := m.TLX; x <= m.BRX; x++ {
|
||||||
|
if m.StringEmptyIsSpace {
|
||||||
|
ret = ret + string(m.Opt(Coordinate{X: x, Y: y}, m.StringEmptyByte))
|
||||||
|
} else {
|
||||||
ret = ret + string(m.Field[Coordinate{X: x, Y: y}])
|
ret = ret + string(m.Field[Coordinate{X: x, Y: y}])
|
||||||
}
|
}
|
||||||
|
}
|
||||||
ret = ret + "\n"
|
ret = ret + "\n"
|
||||||
}
|
}
|
||||||
return ret
|
return ret
|
||||||
|
Loading…
Reference in New Issue
Block a user