diff --git a/Client.cpp b/Client.cpp index 73bb121..4ed70b2 100644 --- a/Client.cpp +++ b/Client.cpp @@ -48,46 +48,58 @@ int main(int argc, char *argv[]) //Client has successfully joined char buffer[256]; char info[256]; + string final_board; cout<<"WELCOME\n"; cout<<"1. Play against AI?\n"; - cout<<"2. Play against a human?\n"; - cout<<"Enter choice: \n"; - - string choice; - cin >> choice; + cout<<"2. Play AI against an AI?\n"; + string choice = ""; + while(choice != "1") + { + cout<<"Enter choice: \n"; + cin >> choice; + if(choice == "2") + cout << "AI vs. AI mode not added yet!\n"; + } //Check for a valid option cout << "OK!\n" << endl; //Writes off the choice to the server - n = write(sockfd, choice.c_str(), choice.length()); //Sends an input to the server - - + cin.clear(); + cin.ignore(10000,'\n'); while(true) { bzero(buffer,256); //resets the input stream n = read(sockfd,buffer,255); //Receives the board from server printf("%s\n",buffer);//Prints the received message + final_board = buffer; printf("Please enter a move: "); bzero(buffer,256); //resets input stream fgets(buffer,255,stdin); //Enter a move - n = write(sockfd,buffer,strlen(buffer)); //Sends an inputted move to the server + n = write(sockfd,buffer,strlen(buffer)); //Sends an input move to the server bzero(info,256); //resets input stream n = read(sockfd,info,255); //Reads from server if move was valid string ref = info; if(ref == "Game_Over") { + n = read(sockfd,info,255); //Reads from server if move was valid cout << "GAME OVER!!!" << endl; break; } else continue; - } + cout << "\nGAME WINNING MOVE: \n"; + //cout << final_board << endl; + //bzero(info,256); //resets input stream + n = read(sockfd,info,255); //Reads from server if move was valid + + printf("%s\n",info);//Prints the received message + usleep(1); close(sockfd); return 0; } diff --git a/README.md b/README.md new file mode 100644 index 0000000..ac4fdc5 --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +# Breakthrough +Reposity for the second CSCE 315 project + +compile the server with the folling command: +g++ -std=c++11 -o server Board.cpp Server.cpp + +run: +./server [port] + +Client is still WIP. diff --git a/Server.cpp b/Server.cpp index 3630ebc..de4e231 100644 --- a/Server.cpp +++ b/Server.cpp @@ -85,6 +85,8 @@ int main(int argc, char *argv[]) char buffer[256]; char info[256]; int choice; + int move_counter = 0; + string final_move; //Waiting for client to select game type n = read(newsockfd,info,255); @@ -100,14 +102,14 @@ int main(int argc, char *argv[]) while(b.getTurn() == 'O' ) { - b.displayBoard(); //Display the board on the server + b.displayBoard();//Display the board on the server string boardState = b.boardToString(); - write(newsockfd, boardState.c_str(), boardState.length()); //Display the board to the client (line by line) + final_move = b.boardToString(); + write(newsockfd, boardState.c_str(), boardState.length());//Display the board to the client (line by line) cout<<"\nWaiting for client: "; n = read(newsockfd,buffer,255); - move = buffer; + move = buffer; b.interpret(move,b); - gameOver = b.isGameOver(); if(gameOver == true) { string endGame = "Game_Over"; @@ -119,42 +121,20 @@ int main(int argc, char *argv[]) write(newsockfd, continueGame.c_str(), continueGame.length()); //Display the board to the client (line by line) } } - - //gameOver = b.isGameOver(); - // if(gameOver == true) { - // string endGame = "Game_Over"; - // write(newsockfd, endGame.c_str(), endGame.length()); //Display the board to the client (line by line) - // break; - // } - // else { - // string continueGame = "Continue_Game"; - // write(newsockfd, continueGame.c_str(), continueGame.length()); //Display the board to the client (line by line) - // } - vector possibleMoves = b.viewPossibleMoves(); if(choice == 1) b.easyAI(); + } + string final_move = b.boardToString(); + write(newsockfd, final_move.c_str(), final_move.length());//Display the board to the client (line by line) + write(newsockfd, final_move.c_str(), final_move.length()); + cout << "\n\nGAME OVER!!!"; + usleep(1); close(newsockfd); close(sockfd); break; - - /* - bzero(buffer,512); - n = read(newsockfd,buffer,255); - if (n < 0) error("ERROR reading from socket"); - printf("Here is the message: %s\n",buffer); - n = write(newsockfd,"I got your message",18); - - if (n < 0) error("ERROR writing to socket"); - - if(buffer == "y") { - close(newsockfd); - close(sockfd); - break; - } - */ } return 0; }