Esempio n. 1
0
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;
        }
}