Program.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using System.Diagnostics;
  2. using Day13;
  3. if (args.Any(a => a == "--debug"))
  4. {
  5. Console.WriteLine("DEBUG");
  6. Console.WriteLine(Debugger.Launch());
  7. }
  8. if (args.Length < 1)
  9. {
  10. Console.WriteLine("Requires 1 args: inputFileName");
  11. return -1;
  12. }
  13. var inputFile = args[0];
  14. var parser = new Parser();
  15. var images = parser.Parse(inputFile).ToList();
  16. var sum = 0;
  17. var sum2 = 0;
  18. foreach (var img in images)
  19. {
  20. var img2 = img.Rotate();
  21. var fold = img.FindFold();
  22. if (fold > 0)
  23. {
  24. img.Print();
  25. Console.WriteLine($"Original (Row): {fold}");
  26. sum += 100 * fold;
  27. }
  28. else
  29. {
  30. fold = img2.FindFold();
  31. if (fold > 0)
  32. {
  33. img2.Print();
  34. Console.WriteLine($"Rotated (Col): {fold}");
  35. sum += fold;
  36. }
  37. if (fold <= 0)
  38. {
  39. Console.WriteLine("Nope");
  40. img.Print();
  41. break;
  42. }
  43. }
  44. fold = img.FindFixedFold();
  45. if (fold > 0)
  46. {
  47. img.Print();
  48. Console.WriteLine($"FIXED - Original (Row): {fold}");
  49. sum2 += 100 * fold;
  50. }
  51. else
  52. {
  53. fold = img2.FindFixedFold();
  54. if (fold > 0)
  55. {
  56. img2.Print();
  57. Console.WriteLine($"FIXED - Rotated (Col): {fold}");
  58. sum2 += fold;
  59. }
  60. if (fold <= 0)
  61. {
  62. Console.WriteLine("Nope");
  63. img.Print();
  64. break;
  65. }
  66. }
  67. }
  68. Console.WriteLine();
  69. Console.WriteLine($"Total: {sum}");
  70. Console.WriteLine($"Total Fixed: {sum2}");
  71. return 0;