diff --git a/src/days/02/Day02.cpp b/src/days/02/Day02.cpp index f88eb65..4f2b918 100644 --- a/src/days/02/Day02.cpp +++ b/src/days/02/Day02.cpp @@ -1,9 +1,46 @@ #include "Day02.h" +int Day02::getScore(char opponent, char me) { + int outcome; + if (opponent == me) + outcome = 3; + else if (opponent == me + 1 || opponent == me - 2) + outcome = 0; + else + outcome = 6; + return outcome + me - 64; +} + Result Day02::Task1() { - return Day::Task1(); + int score = 0; + for (string line : input){ + char predict = line.at(0); + char answer = char(line.at(2) - 23); + score += getScore(predict, answer); + } + return to_string(score); } Result Day02::Task2() { - return Day::Task2(); + int score = 0; + for (string line : input){ + char predict = line.at(0); + char outcome = line.at(2); + + char answer; + if (outcome == 'X'){ + if (predict > 'A') answer = char(predict - 1); + else answer = 'C'; + } + if (outcome == 'Y'){ + answer = predict; + } + if (outcome == 'Z'){ + if (predict < 'C') answer = char(predict + 1); + else answer = 'A'; + } + + score += getScore(predict, answer); + } + return to_string(score); } \ No newline at end of file diff --git a/src/days/02/Day02.h b/src/days/02/Day02.h index e6a2124..28e4aae 100644 --- a/src/days/02/Day02.h +++ b/src/days/02/Day02.h @@ -7,4 +7,7 @@ protected: Result Task1() override; Result Task2() override; +private: + // chars A, B, C + static int getScore(char, char); }; \ No newline at end of file