#ifndef MAIN_CPP #define MAIN_CPP #include #include #include #include "basic.cpp" std::vector fillVector(const int min, const int max) { std::vector newVector; for(int i = min; i <= max; i++) { newVector.push_back(i); } return newVector; } const int MAX_SPOT = 20; const int MIN_SPOT = 1; const std::vector NORMAL_POINTS = fillVector(MIN_SPOT, MAX_SPOT); std::vector multiplyVector(const std::vector v, int multiplyBy) { std::vector newVector; for(unsigned int i = 0; i < v.size(); i++) { newVector.push_back(v.at(i)*multiplyBy); } return newVector; } const std::vector DOUBLE_POINTS = multiplyVector(NORMAL_POINTS, 2); const std::vector TRIPLE_POINTS = multiplyVector(NORMAL_POINTS, 3); const int MAX_ONE_HIT = TRIPLE_POINTS.at(TRIPLE_POINTS.size() - 1); const int THROWS_IN_ONE_HIT = 3; const int MAX_POINTS_TURN = THROWS_IN_ONE_HIT * MAX_ONE_HIT; const int STARTING_POINTS = 501; const int FINAL_POINTS = 0; bool validString(const std::string s) { for(unsigned int i = 0; i < s.length(); i++) { if(!charIsNumber(s.at(i))) { printErrorStringContainsNotNumber(s); return 0; } } return 1; } bool validNumberInput(const std::string input, const int min, const int max) { if(!validString(input)) return 0; int inputInt = std::stoi(input); if(numberTooLow(inputInt, min)) return 0; if(numberTooHigh(inputInt, max)) return 0; return 1; } bool validInput(const std::string s) { if(s.length() > 3) return 0; if(!validNumberInput(s, FINAL_POINTS, STARTING_POINTS)) return 0; return 1; } std::vector requiredShoots(const int pointsLeft) { } int main() { print("Enter points left: "); std::string pointsLeft; do{ getline(std::cin, pointsLeft); }while(!validInput(pointsLeft)); int pointsLeftInt = std::stoi(pointsLeft); requiredShoots(pointsLeftInt); return 0; } #endif