From efc1b264b8416d7b80275d2d96d8d83c65de640f Mon Sep 17 00:00:00 2001 From: rasmus Date: Thu, 27 Mar 2025 18:05:20 +0100 Subject: [PATCH] Made code style more consistent, use const reference in parameters, and removed a redundant check --- include/FileHelper.h | 13 --------- include/FileReader.h | 18 ------------ include/{NumberHelper.h => NumberUtils.h} | 16 +++++------ include/PrintFrames.h | 4 +-- include/ScoreCalculator.h | 2 +- makefile | 2 +- src/FileHelper.cpp | 13 --------- src/FileReader.cpp | 16 ----------- src/{NumberHelper.cpp => NumberUtil.cpp} | 35 ++++++++++------------- src/PrintFrames.cpp | 17 ++++------- src/ScoreCalculator.cpp | 2 +- src/main.cpp | 8 +++--- 12 files changed, 37 insertions(+), 109 deletions(-) delete mode 100644 include/FileHelper.h delete mode 100644 include/FileReader.h rename include/{NumberHelper.h => NumberUtils.h} (52%) delete mode 100644 src/FileHelper.cpp delete mode 100644 src/FileReader.cpp rename src/{NumberHelper.cpp => NumberUtil.cpp} (78%) diff --git a/include/FileHelper.h b/include/FileHelper.h deleted file mode 100644 index f522a62..0000000 --- a/include/FileHelper.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef FILEHELPER_H -#define FILEHELPER_H - -class FileHelper { - public: - FileHelper() = default; - - ~FileHelper() = default; - - static bool fileExists(char *path); -}; - -#endif \ No newline at end of file diff --git a/include/FileReader.h b/include/FileReader.h deleted file mode 100644 index fc4d632..0000000 --- a/include/FileReader.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef FILEREADER_H -#define FILEREADER_H - -#include -#include - -using namespace std; - -class FileReader { - public: - FileReader() = default; - - ~FileReader() = default; - - static string getFile(char *path); -}; - -#endif \ No newline at end of file diff --git a/include/NumberHelper.h b/include/NumberUtils.h similarity index 52% rename from include/NumberHelper.h rename to include/NumberUtils.h index eb2c7b1..5a64712 100644 --- a/include/NumberHelper.h +++ b/include/NumberUtils.h @@ -1,5 +1,5 @@ -#ifndef NUMBERHELPER_H -#define NUMBERHELPER_H +#ifndef NUMBERUTILS_H +#define NUMBERUTILS_H #include #include @@ -7,15 +7,15 @@ using namespace std; -class NumberHelper { +class NumberUtils { public: - NumberHelper() = default; + NumberUtils() = default; - ~NumberHelper() = default; + ~NumberUtils() = default; - static vector getRolls(string csv); - static bool validateRolls(vector rolls); - static vector createFrames(vector rolls); + static vector getRolls(const string& csv); + static bool validateRolls(const vector& rolls); + static vector createFrames(const vector& rolls); private: static Frame createStrikeFrame(int i); diff --git a/include/PrintFrames.h b/include/PrintFrames.h index 782d82e..fdb207a 100644 --- a/include/PrintFrames.h +++ b/include/PrintFrames.h @@ -14,8 +14,8 @@ class PrintFrames { ~PrintFrames() = default; static void printHeader(); - static void printValue(string values); - static string parseValue(vector frames); + static void printValue(const string& value); + static string parseValue(const vector& frames); }; #endif \ No newline at end of file diff --git a/include/ScoreCalculator.h b/include/ScoreCalculator.h index 724a60e..5ac1642 100644 --- a/include/ScoreCalculator.h +++ b/include/ScoreCalculator.h @@ -13,7 +13,7 @@ class ScoreCalculator { ~ScoreCalculator() = default; - static int getScore(vector rolls); + static int getScore(const vector& frames); }; #endif \ No newline at end of file diff --git a/makefile b/makefile index bd2c20a..ab56faf 100644 --- a/makefile +++ b/makefile @@ -1,7 +1,7 @@ # Makefile for hello.c CC = g++ -CFLAGS = -O2 +CFLAGS = -O2 -Wanalyzer-malloc-leak SRC_DIR = src BUILD_DIR = build diff --git a/src/FileHelper.cpp b/src/FileHelper.cpp deleted file mode 100644 index 21b6494..0000000 --- a/src/FileHelper.cpp +++ /dev/null @@ -1,13 +0,0 @@ -#include "../include/FileHelper.h" -#include - -bool FileHelper::fileExists(char *path){ - struct stat s; - - // Check if file exists, and if it isn't a folder. - if (stat(path, &s) == 0 && !(s.st_mode & S_IFDIR)){ - return true; - } - - return false; -} \ No newline at end of file diff --git a/src/FileReader.cpp b/src/FileReader.cpp deleted file mode 100644 index 771e231..0000000 --- a/src/FileReader.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include "../include/FileReader.h" -#include -#include - -string FileReader::getFile(char *path){ - ifstream file(path); - - string line; - - // There is only one line in the file - getline(file, line); - - file.close(); - - return line; -} \ No newline at end of file diff --git a/src/NumberHelper.cpp b/src/NumberUtil.cpp similarity index 78% rename from src/NumberHelper.cpp rename to src/NumberUtil.cpp index 4bb6b91..f1ac6fd 100644 --- a/src/NumberHelper.cpp +++ b/src/NumberUtil.cpp @@ -1,11 +1,11 @@ -#include "../include/NumberHelper.h" +#include "../include/NumberUtils.h" #include #include #include #include #include -vector NumberHelper::getRolls(string csv){ +vector NumberUtils::getRolls(const string& csv){ vector rolls; stringstream ss(csv); string number; @@ -23,11 +23,11 @@ vector NumberHelper::getRolls(string csv){ return rolls; } -bool NumberHelper::validateRolls(vector rolls){ +bool NumberUtils::validateRolls(const vector& rolls){ int rollCount = rolls.size(); - for(int i = 0; i < rollCount; ++i) { - if(rolls[i] > 10 || rolls[i] < 0) { + for (int i = 0; i < rollCount; ++i) { + if (rolls[i] > 10 || rolls[i] < 0) { cerr << "Number: " << rolls[i] << " is invalid."; return false; } @@ -49,16 +49,14 @@ bool NumberHelper::validateRolls(vector rolls){ return true; } -vector NumberHelper::createFrames(vector rolls){ +vector NumberUtils::createFrames(const vector& rolls){ vector frame; int roll = 0; - while (roll != rolls.size()) - { + while (roll != rolls.size()) { // Strike - if (rolls[roll] == 10) - { + if (rolls[roll] == 10) { // If we're on our last frame, and roll a strike, we're given two bonus rolls. if (roll + 3 == rolls.size() && rolls[roll - 3] == 10) { frame.push_back(createBonusFrame(rolls[roll], rolls[roll + 1], rolls[roll + 2])); @@ -71,11 +69,9 @@ vector NumberHelper::createFrames(vector rolls){ } // Spare - else if (rolls[roll] + rolls[roll + 1] == 10) - { + else if (rolls[roll] + rolls[roll + 1] == 10) { // If we're on our last frame, and roll a spare, we're given a bonus roll. - if (roll + 3 == rolls.size() && rolls[roll] + rolls[roll + 1] == 10) - { + if (roll + 3 == rolls.size()) { frame.push_back(createBonusFrame(rolls[roll], rolls[roll + 1], rolls[roll + 2])); break; } @@ -86,8 +82,7 @@ vector NumberHelper::createFrames(vector rolls){ } // Open Frame - else - { + else { frame.push_back(createFreeFrame(rolls[roll], rolls[roll + 1])); roll += 2; @@ -97,7 +92,7 @@ vector NumberHelper::createFrames(vector rolls){ return frame; } -Frame NumberHelper::createStrikeFrame(int i){ +Frame NumberUtils::createStrikeFrame(int i){ struct Frame frame = Frame(); vector rolls; @@ -109,7 +104,7 @@ Frame NumberHelper::createStrikeFrame(int i){ return frame; } -Frame NumberHelper::createFreeFrame(int i, int j){ +Frame NumberUtils::createFreeFrame(int i, int j){ struct Frame frame = Frame(); vector rolls; @@ -122,7 +117,7 @@ Frame NumberHelper::createFreeFrame(int i, int j){ return frame; } -Frame NumberHelper::createBonusFrame(int i, int j, int k){ +Frame NumberUtils::createBonusFrame(int i, int j, int k){ struct Frame frame = Frame(); vector rolls; @@ -136,7 +131,7 @@ Frame NumberHelper::createBonusFrame(int i, int j, int k){ return frame; } -bool NumberHelper::isNumber(const std::string& str){ +bool NumberUtils::isNumber(const std::string& str){ for (size_t i = 0; i < str.size(); ++i) { if (!isdigit(str[i]) && !isspace(str[i])) return false; } diff --git a/src/PrintFrames.cpp b/src/PrintFrames.cpp index 1630ef8..44f3bbe 100644 --- a/src/PrintFrames.cpp +++ b/src/PrintFrames.cpp @@ -6,11 +6,11 @@ void PrintFrames::printHeader() { cout << "| f1 | f2 | f3 | f4 | f5 | f6 | f7 | f8 | f9 | f10 |" << endl; } -void PrintFrames::printValue(string value) { +void PrintFrames::printValue(const string& value) { cout << value; } -string PrintFrames::parseValue(vector frames) { +string PrintFrames::parseValue(const vector& frames) { stringstream ss; // There can only be 10 frames. @@ -30,14 +30,12 @@ string PrintFrames::parseValue(vector frames) { else if (frames[i].Roll[1] == 10 && frames[i].Roll[2] != 10) { 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] << ", - "; } @@ -59,15 +57,12 @@ string PrintFrames::parseValue(vector frames) { if (frames[i + 1].Roll[0] + frames[i + 1].Roll[1] == 10) { 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 { + } else { ss << "X, "; } } @@ -103,6 +98,7 @@ string PrintFrames::parseValue(vector frames) { } else { ss << frames[i].Roll[0] << ", /, " << frames[i].Roll[2]; } + continue; } @@ -120,12 +116,9 @@ string PrintFrames::parseValue(vector frames) { 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 { + } else { ss << frames[i].Roll[0] << ", " << frames[i].Roll[1]; } } diff --git a/src/ScoreCalculator.cpp b/src/ScoreCalculator.cpp index d85529b..352cab8 100644 --- a/src/ScoreCalculator.cpp +++ b/src/ScoreCalculator.cpp @@ -1,7 +1,7 @@ #include "../include/ScoreCalculator.h" #include "../include/Frame.h" -int ScoreCalculator::getScore(vector frames) { +int ScoreCalculator::getScore(const vector& frames) { int score = 0; // There can only be 10 frames. diff --git a/src/main.cpp b/src/main.cpp index 9abb39a..b5bf9c4 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,7 +1,7 @@ #include #include #include "../include/FileUtil.h" -#include "../include/NumberHelper.h" +#include "../include/NumberUtils.h" #include "../include/ScoreCalculator.h" #include "../include/PrintFrames.h" @@ -19,13 +19,13 @@ int main(int argc, char *argv[]) { } string file = FileUtil::getFile(argv[1]); - vector rolls = NumberHelper::getRolls(file); + vector rolls = NumberUtils::getRolls(file); - if (!NumberHelper::validateRolls(rolls)) { + if (!NumberUtils::validateRolls(rolls)) { return 0; } - vector frames = NumberHelper::createFrames(rolls); + vector frames = NumberUtils::createFrames(rolls); string values = PrintFrames::parseValue(frames);