From a5bddbcd4996e639a5c81e08838f0c3bb092f19f Mon Sep 17 00:00:00 2001 From: David Jardim Date: Sun, 30 Apr 2017 19:56:39 -0400 Subject: [PATCH] Now plays against server and other clients --- include/Client.hpp | 3 +++ src/Client.cpp | 17 ++++++++++++----- src/main.cpp | 18 ++++++++++++------ 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/include/Client.hpp b/include/Client.hpp index 300aec6..52c3f46 100644 --- a/include/Client.hpp +++ b/include/Client.hpp @@ -11,6 +11,8 @@ class Client { char msgbuf[512]; int timeleft = 180; + int userID; + int oppID; const static std::string user13; const static std::string user14; @@ -28,6 +30,7 @@ class Client { int getTime() { return timeleft; }; Client(int userID, int oppID); std::string amIBlack(); + bool isAgainstServer() { return oppID == 0; }; }; diff --git a/src/Client.cpp b/src/Client.cpp index cde134a..3245962 100644 --- a/src/Client.cpp +++ b/src/Client.cpp @@ -66,8 +66,9 @@ std::string Client::getMsg() { std::cout << "Game over: \n" << msg << std::endl; exit(-1); } + - std::cout << msg << std::endl; + // std::cout << "GETMSG: \n" << msg << std::endl; //update time left if(newlinePos+1 < msg.size() ) @@ -153,6 +154,8 @@ Client::Client(int userID, int oppID){ getMsg(); // ?Opponent: sendMsg(std::to_string(oppID)); + this->userID = userID; + this->oppID = oppID; std::cout << getMsg(); // Game: @@ -163,8 +166,12 @@ std::string Client::amIBlack(){ if(m[6] == 'B') return "B"; - - int newlinePos = m.find('\n', 0); - - return m.substr(newlinePos + 1, m.size()); + else if (oppID != 0){ + m = getMsg(); + return m; + } + else { + int newlinePos = m.find('\n', 0); + return m.substr(newlinePos + 1, m.size()); + } } diff --git a/src/main.cpp b/src/main.cpp index f56fb66..353670b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -30,10 +30,12 @@ int main(int argc, const char * argv[]) { bool isFirstMove = true; + std::string player; //if black, make first move and give to client connection std::string firstMoveStr = c.amIBlack(); if( firstMoveStr[0] == 'B') { + player = "Black"; isFirstMove = false; std::cout << "Black goes first " << std::endl; std::cout << "\n=======================================" << std::endl; @@ -51,10 +53,10 @@ int main(int argc, const char * argv[]) { curMove = c.getMove(); std::cout << curMove->toString() << std::endl; } - else - { - curMove = c.getMove(firstMoveStr); - } + else{ + player = "White"; + curMove = c.getMove(firstMoveStr); + } bool gameNotOver = true; @@ -63,9 +65,9 @@ int main(int argc, const char * argv[]) { std::cout << "\n=======================================" << std::endl; std::cout << "waiting on " << board->player() << "..." << std::endl; - if(isFirstMove) { + if(isFirstMove) isFirstMove = false; - } else + else curMove = c.getMove(); if(curMove->isEmpty()) { gameNotOver = false; break; } @@ -74,6 +76,10 @@ int main(int argc, const char * argv[]) { std::cout << "Recieved move: " << curMove->toString() << std::endl; std::cout << "=======================================" << std::endl; + if(!c.isAgainstServer()) + c.getMove(); // getting ?Move(): + + std::cout << "This client - (" << player << ")"; std::cout << "\n=======================================" << std::endl; std::cout << "generating move... time = " << c.getTime() << std::endl;