diff --git a/Client.cpp b/Client.cpp deleted file mode 100644 index 4ed70b2..0000000 --- a/Client.cpp +++ /dev/null @@ -1,105 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "Board.h" -using namespace std; - -void error(const char *msg) -{ - perror(msg); - exit(0); -} - -int main(int argc, char *argv[]) -{ - int sockfd, portno, n; - struct sockaddr_in serv_addr; - struct hostent *server; - - - if (argc < 3) { - fprintf(stderr,"usage %s hostname port\n", argv[0]); - exit(0); - } - portno = atoi(argv[2]); - sockfd = socket(AF_INET, SOCK_STREAM, 0); - if (sockfd < 0) - error("ERROR opening socket"); - server = gethostbyname(argv[1]); - if (server == NULL) { - fprintf(stderr,"ERROR, no such host\n"); - exit(0); - } - bzero((char *) &serv_addr, sizeof(serv_addr)); - serv_addr.sin_family = AF_INET; - bcopy((char *)server->h_addr, - (char *)&serv_addr.sin_addr.s_addr, - server->h_length); - serv_addr.sin_port = htons(portno); - if (connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0) - error("ERROR connecting"); - - //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 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 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/Engine.cpp b/Engine.cpp index 80d2940..30c3215 100755 --- a/Engine.cpp +++ b/Engine.cpp @@ -2,9 +2,14 @@ #include #include #include +#include +#include +#include +#include +#include +#include #include "Engine.h" - Engine::Engine(){ Board* brd = new Board(); b = brd; @@ -140,4 +145,4 @@ moves Engine::minMax(Board* temp, moves m, int c, int r){ //testing return m; } -} \ No newline at end of file +} diff --git a/Engine.h b/Engine.h index b6df5f5..f5b5371 100755 --- a/Engine.h +++ b/Engine.h @@ -11,6 +11,7 @@ public: Engine(); void startGame(); void easyAI(); - void AI(); - moves minMax(Board* temp, moves m, int c, int r); -}; \ No newline at end of file + void AI(); + Board* getBoard() { return b; } + moves minMax(Board* temp, moves m, int c); +}; diff --git a/Parser.cpp b/Parser.cpp deleted file mode 100755 index 9e5d94a..0000000 --- a/Parser.cpp +++ /dev/null @@ -1,63 +0,0 @@ -//#include "main.cpp" -#include -#include -#include -#include - -bool password = true; // temp for a password needed function needed later. -string pass = "admin"; - -void setPassword() -{ - password = !password; -} - -vector tokenize(string ss){ - string tempString; - stringstream lineStream(ss); - vector output; - - while (lineStream >> tempString){ - output.push_back(tempString); - } - return output; -} - -void parseCmd(vector input){ - if(password){ - if(pass == input[0]){ - setPassword(); - cout << "Success." << endl; - } - else{ - cout << "Incorrect Password." << endl; - } - } - - string cmd = toupper(input[0]); - - else if(cmd == ""){ - - } - - else if(cmd == ""){ - - } - - else if(cmd == ""){ - - } - - else if(cmd == ""){ - - } - - else if(cmd == ""){ - - } -} - -void parse(string input){ - vector listOfTokens = tokenize(input); - parseCmd(listOfTokens); -} diff --git a/Parser.h b/Parser.h deleted file mode 100644 index 4ad6930..0000000 --- a/Parser.h +++ /dev/null @@ -1,11 +0,0 @@ -//#include "main.cpp" -#include -#include -#include -#include - -void setPassword(); -vector tokenize(string ss); -void parseCmd(); -void parse(string input, DBEngine &engine) - diff --git a/README.md b/README.md index cc5f158..00025fb 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,18 @@ # Breakthrough Reposity for the second CSCE 315 project -compile test.cpp main by typing: -make all +To compile test: + make + or make all + +To run test: + ./test -run: -./test +To compile server: + g++ -std=c++11 server.cpp Engine.cpp Board.cpp Piece.cpp -o runner -Will make separate commands for server/client in the future, for now: -g++ -std=c++11 -o server server.cpp Board.cpp Engine.cpp Piece.cpp +To launch the server: +./runner [port #] -to compile the server, then: -./server - -Client is still WIP, test by compiling with: -g++ -std=c++11 -o client client.cpp Board.cpp Engine.cpp Piece.cpp - -run: -./client +Client can simply join via telnet: + telnet linux.cse.tamu.edu diff --git a/Server.cpp b/Server.cpp index 348f59a..7f49679 100644 --- a/Server.cpp +++ b/Server.cpp @@ -11,6 +11,7 @@ #include #include #include "Board.h" +#include "Engine.h" using namespace std; void error(const char *msg) @@ -75,42 +76,47 @@ int main(int argc, char *argv[]) // cin >> choice; // cout << "OK" << endl; - Board b; + Engine e; + //Board* temp = e.getBoard(); + //Board b = *temp; string move; //Brute force up in here! bool gameOver = false; vector record; - b.snapshot(record,b); + e.getBoard()->snapshot(record,(*e.getBoard())); char buffer[256]; char info[256]; int choice; int move_counter = 0; string final_move; + write(newsockfd, "Select a choice:\n", 18); //Waiting for client to select game type n = read(newsockfd,info,255); istringstream convert(info); convert >> choice; //Sets choice equal to 1 or 2, based on clients input + //cout << choice << "\n\n"; bzero(info,256); //Resets info back to normal, "choice" now contains client's value while(true) { while(gameOver != true) { - gameOver = b.isGameOver(); + gameOver = e.getBoard()->isGameOver(); - while(b.getTurn() == 'O' ) + while(e.getBoard()->getTurn() == 'O' ) { - b.displayBoard();//Display the board on the server - string boardState = b.boardToString(); + e.getBoard()->displayBoard();//Display the board on the server + string boardState = e.getBoard()->boardToString(); //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; - b.interpret(move,b); - gameOver = b.isGameOver(); + cout << "\ntest" << move << "\n\n"; + e.getBoard()->interpret(move,(*e.getBoard())); + gameOver = e.getBoard()->isGameOver(); if(gameOver == true) { string endGame = "Game_Over"; write(newsockfd, endGame.c_str(), endGame.length()); //Display the board to the client (line by line) @@ -119,11 +125,14 @@ int main(int argc, char *argv[]) else { string continueGame = "Continue_Game"; write(newsockfd, continueGame.c_str(), continueGame.length()); //Display the board to the client (line by line) + e.getBoard()->changeTurns(); } } - vector possibleMoves = b.viewPossibleMoves(); - if(choice == 1) - b.easyAI(); + vector possibleMoves = e.getBoard()->viewPossibleMoves(); + if(choice == 1) { + cout << "test\n\n"; + e.easyAI(); + } } /* diff --git a/test.cpp b/test.cpp index 88d7f86..a503291 100755 --- a/test.cpp +++ b/test.cpp @@ -1,14 +1,17 @@ -#include "Board.h" #include "Engine.h" using namespace std; int main() { - //board testing - Board b; - - //engine testing + //Board b; Engine e; + /* + int pn = 0; + cout << "Welcome to Breakthrough server launcher, please enter a host port number: \n"; + cin >> pn; + cin.clear(); + cin.ignore(10000,'\n'); + */ e.startGame(); } diff --git a/test.txt b/test.txt deleted file mode 100644 index e69de29..0000000