basic setup with first 3 days

master
Benjamin Kraft 3 years ago
parent 702e50d055
commit fc3cdae817
  1. 6
      CMakeLists.txt
  2. 252
      input/01_input.txt
  3. 6
      src/01/Day01.cpp
  4. 14
      src/01/Day01.h
  5. 6
      src/02/Day02.cpp
  6. 14
      src/02/Day02.h
  7. 6
      src/03/Day03.cpp
  8. 14
      src/03/Day03.h
  9. 19
      src/Day.h
  10. 27
      src/days.h
  11. 47
      src/main.cpp

@ -3,5 +3,11 @@ project(AdventOfCode2022)
set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD 23)
include(FetchContent)
FetchContent_Declare(cpr GIT_REPOSITORY https://github.com/libcpr/cpr.git GIT_TAG 67e12da316754ff3c6c91b50aafb2658438f3c1e) # the commit hash for 1.7.0
# FetchContent_MakeAvailable(cpr)
file(GLOB_RECURSE SRC_FILES src/**.cpp src/**.h) file(GLOB_RECURSE SRC_FILES src/**.cpp src/**.h)
add_executable(AdventOfCode2022 ${SRC_FILES}) add_executable(AdventOfCode2022 ${SRC_FILES})
# target_link_libraries(AdventOfCode2022 PRIVATE cpr::cpr)

@ -0,0 +1,252 @@
inp w
mul x 0
add x z
mod x 26
div z 1
add x 11
eql x w
eql x 0
mul y 0
add y 25
mul y x
add y 1
mul z y
mul y 0
add y w
add y 16
mul y x
add z y
inp w
mul x 0
add x z
mod x 26
div z 1
add x 12
eql x w
eql x 0
mul y 0
add y 25
mul y x
add y 1
mul z y
mul y 0
add y w
add y 11
mul y x
add z y
inp w
mul x 0
add x z
mod x 26
div z 1
add x 13
eql x w
eql x 0
mul y 0
add y 25
mul y x
add y 1
mul z y
mul y 0
add y w
add y 12
mul y x
add z y
inp w
mul x 0
add x z
mod x 26
div z 26
add x -5
eql x w
eql x 0
mul y 0
add y 25
mul y x
add y 1
mul z y
mul y 0
add y w
add y 12
mul y x
add z y
inp w
mul x 0
add x z
mod x 26
div z 26
add x -3
eql x w
eql x 0
mul y 0
add y 25
mul y x
add y 1
mul z y
mul y 0
add y w
add y 12
mul y x
add z y
inp w
mul x 0
add x z
mod x 26
div z 1
add x 14
eql x w
eql x 0
mul y 0
add y 25
mul y x
add y 1
mul z y
mul y 0
add y w
add y 2
mul y x
add z y
inp w
mul x 0
add x z
mod x 26
div z 1
add x 15
eql x w
eql x 0
mul y 0
add y 25
mul y x
add y 1
mul z y
mul y 0
add y w
add y 11
mul y x
add z y
inp w
mul x 0
add x z
mod x 26
div z 26
add x -16
eql x w
eql x 0
mul y 0
add y 25
mul y x
add y 1
mul z y
mul y 0
add y w
add y 4
mul y x
add z y
inp w
mul x 0
add x z
mod x 26
div z 1
add x 14
eql x w
eql x 0
mul y 0
add y 25
mul y x
add y 1
mul z y
mul y 0
add y w
add y 12
mul y x
add z y
inp w
mul x 0
add x z
mod x 26
div z 1
add x 15
eql x w
eql x 0
mul y 0
add y 25
mul y x
add y 1
mul z y
mul y 0
add y w
add y 9
mul y x
add z y
inp w
mul x 0
add x z
mod x 26
div z 26
add x -7
eql x w
eql x 0
mul y 0
add y 25
mul y x
add y 1
mul z y
mul y 0
add y w
add y 10
mul y x
add z y
inp w
mul x 0
add x z
mod x 26
div z 26
add x -11
eql x w
eql x 0
mul y 0
add y 25
mul y x
add y 1
mul z y
mul y 0
add y w
add y 11
mul y x
add z y
inp w
mul x 0
add x z
mod x 26
div z 26
add x -6
eql x w
eql x 0
mul y 0
add y 25
mul y x
add y 1
mul z y
mul y 0
add y w
add y 6
mul y x
add z y
inp w
mul x 0
add x z
mod x 26
div z 26
add x -11
eql x w
eql x 0
mul y 0
add y 25
mul y x
add y 1
mul z y
mul y 0
add y w
add y 15
mul y x
add z y

@ -0,0 +1,6 @@
#include "Day01.h"
int Day01::run() {
return 0;
}

@ -0,0 +1,14 @@
#ifndef ADVENTOFCODE2022_DAY01_H
#define ADVENTOFCODE2022_DAY01_H
#include "../Day.h"
class Day01 : public Day {
public:
explicit Day01(std::vector<std::string> &input) : Day(input) {}
int run() override;
};
#endif

@ -0,0 +1,6 @@
#include "Day02.h"
int Day02::run() {
return 1;
}

@ -0,0 +1,14 @@
#ifndef ADVENTOFCODE2022_DAY02_H
#define ADVENTOFCODE2022_DAY02_H
#include "../Day.h"
class Day02 : public Day {
public:
explicit Day02(std::vector<std::string> &input) : Day(input) {}
int run() override;
};
#endif

@ -0,0 +1,6 @@
#include "Day03.h"
int Day03::run() {
return 1;
}

@ -0,0 +1,14 @@
#ifndef ADVENTOFCODE2022_DAY03_H
#define ADVENTOFCODE2022_DAY03_H
#include "../Day.h"
class Day03 : public Day {
public:
explicit Day03(std::vector<std::string> &input) : Day(input) {}
int run() override;
};
#endif

@ -0,0 +1,19 @@
#ifndef ADVENTOFCODE2022_DAY_H
#define ADVENTOFCODE2022_DAY_H
#include <vector>
#include <string>
class Day {
protected:
std::vector<std::string> input;
public:
explicit Day(std::vector<std::string> &input) : input(input) {}
virtual int run() {
return 0;
}
};
#endif

@ -0,0 +1,27 @@
#ifndef ADVENTOFCODE2022_DAYS_H
#define ADVENTOFCODE2022_DAYS_H
#include "01/Day01.h"
#include "02/Day02.h"
#include "03/Day03.h"
Day* getDay(int dayNum, std::vector<std::string> &input){
Day* day;
switch (dayNum){
case 1:
day = new Day01(input);
break;
case 2:
day = new Day02(input);
break;
case 3:
day = new Day03(input);
break;
default:
day = nullptr;
}
return day;
}
#endif

@ -1,6 +1,49 @@
#include <iostream> #include <iostream>
#include <string>
#include <fstream>
#include <vector>
#include <filesystem>
#include "days.h"
std::vector<std::string> getInput(int day){
char dayStrPadded[3];
sprintf(dayStrPadded, "%02u", day);
std::string localFilePath = "input/" + std::string(dayStrPadded) + "_input.txt";
if (!std::filesystem::exists({localFilePath})){
std::string dayStr = std::to_string(day);
std::string url = "https://adventofcode.com/2021/day/" + dayStr + "/input";
std::string key = "sdfsd";
std::string cookie = "session=" + key;
std::cout << "Input does not exist. Fetching from " + url << std::endl;
//cpr::Response res = cpr::Get(cpr::Url {url}, cpr::Header{{"Cookie", cookie}});
//std::cout << res.text << std::endl;
}
std::fstream file;
file.open(localFilePath, std::ios::in);
std::vector<std::string> result;
std::string line;
while (std::getline(file, line))
result.push_back(line);
return result;
}
int main(int argc, char *argv[]) {
for (int i = 1; i < argc; i++){
int dayNum = std::stoi(argv[i]);
std::vector<std::string> input = getInput(dayNum);
auto day = getDay(dayNum, input);
int code = day->run();
if (code != 0)
return code;
}
int main() {
std::cout << "Hello, World!" << std::endl;
return 0; return 0;
} }

Loading…
Cancel
Save