Summary Files Commits Branches @commit @diff @stats
path: root / Year 1 / Object-oriented Programming / 07-Practice-05.04.2022 / source.cpp
diff options
context:
space:
mode:
Commit30420a6ea65aa58389b9ffa0ba67130de376c079 (patch)
Author
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-04-06 10:29:54 +0300
Committer
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-04-06 10:29:54 +0300
Files12981a8607166b51b9dbbee5ab8e1d965bff509b /Year 1/Object-oriented Programming/07-Practice-05.04.2022/source.cpp
uni-projects-30420a6ea65aa58389b9ffa0ba67130de376c079.tar
uni-projects-30420a6ea65aa58389b9ffa0ba67130de376c079.tar.gz
uni-projects-30420a6ea65aa58389b9ffa0ba67130de376c079.zip
Parent2cf8d711c3dd110555c16913941f865841aa3175 (diff)
Implemented overall functionality for yesterdays practice exercise
1 files changed, 98 insertions, 0 deletions
-rw-r--r--Year 1/Object-oriented Programming/07-Practice-05.04.2022/source.cpp98
diff --git a/Year 1/Object-oriented Programming/07-Practice-05.04.2022/source.cpp b/Year 1/Object-oriented Programming/07-Practice-05.04.2022/source.cpp
index e69de29..1a3f4ba 100644
--- a/Year 1/Object-oriented Programming/07-Practice-05.04.2022/source.cpp
+++ b/Year 1/Object-oriented Programming/07-Practice-05.04.2022/source.cpp
@@ -0,0 +1,98 @@
+#include "Game.h"
+#include "NumberHelpers.h"
+
+bool gameCase_evenOrOdd(double& bet) {
+ int rnd = getRandomBetween(1, 100);
+ std::cout << "Is the number [e]ven or [o]dd? ";
+ char buffer;
+ std::cin >> buffer;
+
+ while (buffer != 'e' && buffer != 'o') {
+ std::cout << "Unknown option '" << buffer << "', choice must be either 'e' or 'o'." << std::endl << "Is the number [e]ven or [o]dd? ";
+ std::cin >> buffer;
+ }
+
+ bool result = isEven(rnd) == (buffer == 'e');
+ bet = (result) ? bet / 5 : 0;
+ std::cout << "The number was: " << rnd << std::endl;
+ return result;
+}
+
+bool gameCase_isPrime(double& bet) {
+ int rnd = getRandomBetween(1, 100);
+
+ bool result = isPrime(rnd);
+ bet = (result) ? bet / 2 : 0;
+ std::cout << "The number was: " << rnd << std::endl;
+ return result;
+}
+
+bool gameCase_isPowerOfTwo(double& bet) {
+ int rnd = getRandomBetween(1, 100);
+
+ bool result = isPowerOfTwo(rnd);
+ bet = (result) ? bet / 2 : 0;
+ std::cout << "The number was: " << rnd << std::endl;
+ return result;
+}
+
+bool gameCase_higherOrLower(double& bet) {
+ int rnd = getRandomBetween(1, 100);
+
+ std::cout << "Your number [20...60] ";
+ int num;
+ std::cin >> num;
+
+ while (num < 20 || num > 60) {
+ std::cout << "Number not in range! Enter number [20...60] ";
+ std::cin >> num;
+ }
+
+ std::cout << num << " will be [h]igher or [l]ower than random? ";
+ char guess;
+ std::cin >> guess;
+
+ while (guess != 'h' && guess != 'l') {
+ std::cout << "Invalid option '" << guess << "', must be either 'h' or 'l'." << std::endl << num << " will be [h]igher or [l]ower than random? ";
+ std::cin >> guess;
+ }
+
+ bool result = (rnd > num) == (guess == 'h');
+ bet = (result) ? bet / 4 : 0;
+ std::cout << "The number was: " << rnd << std::endl;
+ return result;
+}
+
+bool gameCase_guess(double& bet) {
+ int rnd = getRandomBetween(1, 100);
+
+ std::cout << "Your guess: ";
+ int num;
+ std::cin >> num;
+
+ bool result = num == rnd;
+ bet = (result) ? bet * 10 : 0;
+ std::cout << "The number was: " << rnd << std::endl;
+ return result;
+}
+
+int main() {
+ GameCase numberGambleCases[] = {
+ GameCase('e', gameCase_evenOrOdd),
+ GameCase('p', gameCase_isPrime),
+ GameCase('t', gameCase_isPowerOfTwo),
+ GameCase('h', gameCase_higherOrLower),
+ GameCase('g', gameCase_guess)
+ };
+ Game numberGamble(numberGambleCases, 5);
+
+ Player yorgus("Yorgus", "yorgus", 23, 57741.39);
+
+ char buffer = '\0';
+ while (buffer != 'n' && buffer != 'N') {
+ numberGamble.play(yorgus);
+ std::cout << "Do you want to play again? [y/n] ";
+ std::cin >> buffer;
+ }
+ std::cout << "Your balance: " << yorgus.get_balance() << std::endl;
+}