diff --git a/rolls4.txt b/rolls4.txt
index 2c19309..cd432e6 100644
--- a/rolls4.txt
+++ b/rolls4.txt
@@ -1 +1 @@
-0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 5, 5
+5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 5, 5
diff --git a/rolls5.txt b/rolls5.txt
new file mode 100644
index 0000000..9a56ce2
--- /dev/null
+++ b/rolls5.txt
@@ -0,0 +1 @@
+5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 10, 10
diff --git a/src/PrintFrames.cpp b/src/PrintFrames.cpp
index 6ba206a..fc4d3de 100644
--- a/src/PrintFrames.cpp
+++ b/src/PrintFrames.cpp
@@ -32,6 +32,20 @@ string PrintFrames::parseValue(vector frames) {
ss << "X, " << frames[i].Roll[2] << " ";
}
+ else if (frames[i].Roll[1] == 10 && frames[i].Roll[2] == 0) {
+ ss << frames[i].Roll[1] << ", - ";
+ }
+ else if (frames[i].Roll[1] == 0 && frames[i].Roll[2] == 10) {
+ ss << "-, " << frames[i].Roll[2] << " ";
+ }
+
+ else if (frames[i].Roll[1] != 10 && frames[i].Roll[2] == 0) {
+ ss << frames[i].Roll[1] << ", - ";
+ }
+ else if (frames[i].Roll[1] == 0 && frames[i].Roll[2] != 10) {
+ ss << "-, " << frames[i].Roll[2] << " ";
+ }
+
continue;
}
@@ -44,8 +58,17 @@ string PrintFrames::parseValue(vector frames) {
ss << frames[i + 1].Roll[1] << ", X";
} else {
if (frames[i + 1].Roll[0] + frames[i + 1].Roll[1] == 10) {
- ss << "X, " << frames[i + 1].Roll[0] << " ,/";
- } else {
+ ss << "X, " << frames[i + 1].Roll[0] << ", /";
+ }
+
+ else if (frames[i + 1].Roll[0] == 0 && frames[i + 1].Roll[1] != 0) {
+ ss << "X, " << "-, " << frames[i + 1].Roll[1];
+ }
+ else if (frames[i + 1].Roll[0] != 0 && frames[i + 1].Roll[1] == 0) {
+ ss << "X, " << frames[i + 1].Roll[0] << ", -";
+ }
+
+ else {
ss << "X, ";
}
}
@@ -62,7 +85,25 @@ string PrintFrames::parseValue(vector frames) {
// Spare
if (frames[i].Roll[0] + frames[i].Roll[1] == 10) {
if (frames[i].Roll.size() == 3) {
- ss << frames[i].Roll[0] << ", / ";
+ if (frames[i].Roll[0] == 0 && frames[i].Roll[1] != 10 && frames[i].Roll[2] != 10) {
+ if (frames[i].Roll[2] == 0) {
+ ss << "-, /, -";
+ } else {
+ ss << "-, " << frames[i].Roll[1] << frames[i].Roll[2];
+ }
+ }
+ else if (frames[i].Roll[0] == 0 && frames[i].Roll[1] == 10 && frames[i].Roll[2] != 10) {
+ if (frames[i].Roll[2] == 0) {
+ ss << "-, /, -";
+ } else {
+ ss << "-, /, " << frames[i].Roll[2];
+ }
+ }
+ else if (frames[i].Roll[0] == 0 && frames[i].Roll[1] == 10 && frames[i].Roll[2] == 10) {
+ ss << "-, /, X";
+ } else {
+ ss << frames[i].Roll[0] << ", / ";
+ }
continue;
}
@@ -74,7 +115,20 @@ string PrintFrames::parseValue(vector frames) {
if (i == 9) {
ss << frames[i].Roll[0] << ", " << frames[i].Roll[1] << " ";
} else {
- ss << frames[i].Roll[0] << ", " << frames[i].Roll[1];
+ if (frames[i].Roll[0] == 0 && frames[i].Roll[1] == 0) {
+ ss << "-, -";
+ }
+ else if (frames[i].Roll[0] == 0 && frames[i].Roll[1] != 0) {
+ ss << "-, " << frames[i].Roll[1];
+ }
+
+ else if (frames[i].Roll[0] != 0 && frames[i].Roll[1] == 0) {
+ ss << frames[i].Roll[0] << ", -";
+ }
+
+ else {
+ ss << frames[i].Roll[0] << ", " << frames[i].Roll[1];
+ }
}
}