Compare commits
7
Commits
cleanup
...
05ba979f58
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
05ba979f58 | ||
|
|
8fdd4c18fd | ||
|
|
c14a29a070 | ||
|
|
3420815c74 | ||
|
|
f076e0e35c | ||
|
|
ceddebcd80 | ||
|
|
b285704ae1 |
+3
-3
@@ -1,11 +1,11 @@
|
||||
FROM gcc:latest
|
||||
|
||||
RUN g++ src/*.cpp -o Bowling
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY rolls.txt /app/
|
||||
COPY include/* /app/include/
|
||||
COPY src/* /app/src/
|
||||
|
||||
RUN g++ src/*.cpp -o Bowling
|
||||
#RUN g++ src/*.cpp -o Bowling
|
||||
|
||||
CMD ["./Bowling", "rolls.txt"]
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
To run the project, simply follow these steps:
|
||||
1. `git clone https://git.rbwr.dk/owner/Bowling.git`
|
||||
2. `cd Bowling/`
|
||||
2. `docker build -t bowling .`
|
||||
3. `docker run --rm bowling`
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ class NumberHelper {
|
||||
~NumberHelper() = default;
|
||||
|
||||
static vector<int> getRolls(string csv);
|
||||
static bool validateRolls(vector<int> rolls);
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
10, 3, 2, 2, 3, 5, 4, 9, 1, 2, 5, 3, 2, 4, 2, 3, 3, 4, 6
|
||||
@@ -0,0 +1 @@
|
||||
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
|
||||
@@ -0,0 +1 @@
|
||||
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
|
||||
@@ -7,6 +7,7 @@ string FileReader::getFile(char *path){
|
||||
|
||||
string line;
|
||||
|
||||
// There is only one line in the file
|
||||
getline(file, line);
|
||||
|
||||
file.close();
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "../include/NumberHelper.h"
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
#include <vector>
|
||||
@@ -14,4 +15,30 @@ vector<int> NumberHelper::getRolls(string csv){
|
||||
}
|
||||
|
||||
return rolls;
|
||||
}
|
||||
|
||||
bool NumberHelper::validateRolls(vector<int> rolls){
|
||||
int rollCount = rolls.size();
|
||||
|
||||
for(int i = 0; i < rollCount; ++i) {
|
||||
if(rolls[i] > 10 || rolls[i] < 0) {
|
||||
cerr << "Number: " << rolls[i] << " is invalid.";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// A game can not have less than 12 rolls, and more than 21.
|
||||
if (rollCount < 12 || rollCount > 21) {
|
||||
cerr << "Incorrect amount of rolls.";
|
||||
return false;
|
||||
}
|
||||
|
||||
// 10th frame rule.
|
||||
if (rollCount == 21) {
|
||||
if (rolls[18] != 10 && rolls[18] + rolls[19] != 10) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -22,6 +22,10 @@ int main(int argc, char *argv[]) {
|
||||
string file = FileReader::getFile(argv[1]);
|
||||
vector<int> rolls = NumberHelper::getRolls(file);
|
||||
|
||||
if (!NumberHelper::validateRolls(rolls)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
PrintFrames::printHeader(rolls);
|
||||
PrintFrames::printValue(rolls);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user