scaffold 2024
This commit is contained in:
31
2024/Program.cs
Normal file
31
2024/Program.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using _2024;
|
||||
|
||||
Console.Write("Enter a day: ");
|
||||
var input = Console.ReadLine();
|
||||
|
||||
if (!int.TryParse(input, out var day)) {
|
||||
Console.Error.WriteLine("Error: input is not a valid integer.");
|
||||
Environment.Exit(1);
|
||||
}
|
||||
|
||||
if (day is < 1 or > 25) {
|
||||
Console.Error.WriteLine("Error: day must be between 1 and 25.");
|
||||
Environment.Exit(1);
|
||||
}
|
||||
|
||||
var dayStr = day.ToString();
|
||||
if (day < 10) {
|
||||
dayStr = "0" + dayStr;
|
||||
}
|
||||
|
||||
// Instantiate an ISolution named 's' based on the day, e.g., Day02 for day == 2, then run it
|
||||
var typeName = $"_2024.Day{dayStr}";
|
||||
var type = typeof(ISolution).Assembly.GetType(typeName);
|
||||
|
||||
if (type is null || !typeof(ISolution).IsAssignableFrom(type)) {
|
||||
Console.Error.WriteLine($"Error: could not find a solution class for day {dayStr}.");
|
||||
Environment.Exit(1);
|
||||
}
|
||||
|
||||
var s = (ISolution)Activator.CreateInstance(type)!;
|
||||
s.Run();
|
||||
Reference in New Issue
Block a user