int main(int argc, char* argv[]) { //make window if(!init()) { cout<<"Init failed"; } //loads buttons and sprites loadMedia(); bool quit=false; int menubutton=0; SDL_Event e; while(quit!=true) { while(SDL_PollEvent(&e)!=0) { //quits game if(e.type==SDL_QUIT) { quit=true; } //clears board during game if(e.key.keysym.sym==SDLK_SPACE) { clearBoard(); } //returns to menu if(e.key.keysym.sym==SDLK_ESCAPE) { if(startgame==true) { gamecontinue=true; } startgame=false; aboutstate=false; } //click during game to play if(e.type==SDL_MOUSEBUTTONDOWN && startgame==true) { if(checkGameOver()==true) { clearBoard(); } else { SDL_GetMouseState( &x, &y ); tile=whichButton(x,y); } } //click either start or about if(e.type==SDL_MOUSEBUTTONDOWN && startgame==false) { SDL_GetMouseState( &x, &y ); menubutton=whichButton(x,y); if(menubutton==0) { startgame=true; } else if(menubutton==1) { aboutstate=true; } } } if(startgame==false && aboutstate==false) { menu(); } else if(startgame==false && aboutstate==true) { about(); } else if(startgame==true && aboutstate==false) { SDL_SetRenderDrawColor( gRenderer, 0xFF, 0xFF, 0xFF, 0xFF ); SDL_RenderClear(gRenderer); play(); drawboard(); if(checkGameOver()==true) { announceWinner(); } } SDL_RenderPresent(gRenderer); SDL_Delay(100); } close(); return 0; }
//Return bool to end game bool takeTurn(int playerNo, int*playerPoints) { int x; int y; int turn; int a; bool stop; if (playerNo == 1) { printName(1); x = roll(); y = roll(); if (x > 1 && y > 1) { turn = x+y; *playerPoints += turn; printroll(x,y,turn); } else if (x == 1 && y == 1) { turn = 0; *playerPoints = 0; printroll(x,y,turn); } else { turn = 0; printroll(x,y,turn); } } if (playerNo == 2) { printName(2); for(a=0; a<2; a++) x = roll(); y = roll(); if (x > 1 && y > 1) { turn = x+y; *playerPoints += turn; printroll(x,y,turn); } else if (x == 1 && y == 1) { turn = 0; *playerPoints = 0; printroll(x,y,turn); } else { turn = 0; printroll(x,y,turn); } } if (playerNo == 3) { printName(3); do { x = roll(); y = roll(); if (x > 1 && y > 1) { turn = x+y; *playerPoints += turn; printroll(x,y,turn); stop = false; } else if (x == 1 && y == 1) { turn = 0; *playerPoints = 0; printroll(x,y,turn); stop = true; } else { turn = 0; printroll(x,y,turn); stop = true; } } while(*playerPoints < 50 && !stop); } printturn(turn,*playerPoints); if (*playerPoints < 50) return false; else { announceWinner(playerNo, *playerPoints); return true; } }