aboutsummaryrefslogtreecommitdiffstats
path: root/rps_game/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'rps_game/src/main.cpp')
-rw-r--r--rps_game/src/main.cpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/rps_game/src/main.cpp b/rps_game/src/main.cpp
new file mode 100644
index 0000000..b7e2dfc
--- /dev/null
+++ b/rps_game/src/main.cpp
@@ -0,0 +1,59 @@
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <climits>
+
+#include "rps.h"
+#include "rps_logger.h"
+
+RPS::OBJECT char_to_obj(char input_char) {
+ switch (input_char) {
+ case 'r':
+ return RPS::ROCK;
+ case 'p':
+ return RPS::PAPER;
+ case 's':
+ return RPS::SCISSORS;
+ default:
+ return RPS::NONE;
+ }
+}
+
+int main() {
+ char buf[NAME_MAX];
+
+ char input_buf[NAME_MAX];
+ char input_char;
+
+ RPS::RPSLogger * game_logger = new RPS::RPSLogger();
+ RPS::RPSLog game_log;
+ RPS::OBJECT out_come;
+
+ while (!feof(stdin)) {
+ // Player one.
+ printf("Enter p1 value rps: ");
+ memset(input_buf, 0, NAME_MAX);
+ fgets(input_buf, NAME_MAX, stdin);
+ input_char = input_buf[0];
+
+ game_log.p1_choice = char_to_obj(input_char);
+
+ // Player two.
+ printf("Enter p2 value rps: ");
+ memset(input_buf, 0, NAME_MAX);
+ fgets(input_buf, NAME_MAX, stdin);
+ input_char = input_buf[0];
+
+ game_log.p2_choice = char_to_obj(input_char);
+
+ // Get out come.
+ out_come = RPS::who_won(game_log);
+ RPS::obj_to_string(out_come, buf, NAME_MAX);
+
+ game_logger->add_log(game_log);
+
+ printf("Out come: %s, p1 wins: %d, p2 wins: %d, duals: %d\n", buf, game_logger->get_p1_wins(), game_logger->get_p2_wins(), game_logger->get_duals());
+ }
+
+ return 0;
+}