You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.1 KiB
Rust
76 lines
2.1 KiB
Rust
/******************************************************************************
|
|
* @file main.rs
|
|
* @author Joey Pollack
|
|
* @date 2024/12/03 (y/m/d)
|
|
* @modified 2024/12/03 (y/m/d)
|
|
* @copyright Joseph R Pollack
|
|
* @brief Advent of Code 2024 main file
|
|
******************************************************************************/
|
|
|
|
mod settings;
|
|
|
|
use day_1::day_1::Day1;
|
|
use day_2::day_2::Day2;
|
|
use day_3::day_3::Day3;
|
|
use day_4::day_4::Day4;
|
|
use day_5::day_5::Day5;
|
|
use day_6::day_6::Day6;
|
|
use day_7::day_7::Day7;
|
|
use day_8::day_8::Day8;
|
|
use solver_base::solver_base::{Solver, DataSet, RunMode};
|
|
use settings::Settings;
|
|
|
|
fn main()
|
|
{
|
|
const NUM_PROBLEMS: i32 = 8;
|
|
let program_settings = Settings::new();
|
|
|
|
for i in 1..=NUM_PROBLEMS
|
|
{
|
|
if !program_settings.skip_problems_contains(i)
|
|
{
|
|
let debug = program_settings.debug_problems_contains(i);
|
|
let verbose = program_settings.verbose_problems_contains(i);
|
|
|
|
let data_set = match debug
|
|
{
|
|
true => DataSet::Test,
|
|
false => DataSet::Full,
|
|
};
|
|
|
|
let mut solver = create_problem_solver(i);
|
|
solver.init(data_set, RunMode::FirstCase, debug, verbose);
|
|
let result = solver.solve();
|
|
println!("Day {} Part 1 Final Result: {}", i, result);
|
|
|
|
solver = create_problem_solver(i);
|
|
solver.init(data_set, RunMode::SecondCase, debug, verbose);
|
|
let result = solver.solve();
|
|
println!("Day {} Part 2 Final Result: {}", i, result);
|
|
}
|
|
else
|
|
{
|
|
println!("Day {} SKIPPING", i);
|
|
}
|
|
|
|
println!("-------------------------");
|
|
}
|
|
}
|
|
|
|
fn create_problem_solver(day_num: i32) -> Box<dyn Solver>
|
|
{
|
|
match day_num
|
|
{
|
|
1 => Box::new(Day1::new()),
|
|
2 => Box::new(Day2::new()),
|
|
3 => Box::new(Day3::new()),
|
|
4 => Box::new(Day4::new()),
|
|
5 => Box::new(Day5::new()),
|
|
6 => Box::new(Day6::new()),
|
|
7 => Box::new(Day7::new()),
|
|
8 => Box::new(Day8::new()),
|
|
|
|
_ => panic!("ERROR in create_problem_solver: Invalid day_num: {}", day_num)
|
|
}
|
|
}
|