You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
#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() {
|
|
|
|
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() {
|
|
|
|
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);
|
|
|
|
}
|