heres the code im using dev and it compiles but nothing pops up?
#include %26lt;allegro.h%26gt;
BITMAP *xSprite;
BITMAP *oSprite;
int board[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 0}; //This will be used to keep
                                             //track of the Xs and Os
int curSquare = 0; //This will keep track of the current square
                    //the selector is on
                                             
int turn = 1; //This will keep track of whose turn it is
              //1 Will be for X and 2 for O
              
int x = 0; //X and Y position of selector
int y = 0;
int tempX = 0; //holds temporary values used to clear selector
int tempY = 0;
void setupBoard(){ //This function will draw in the grid
    acquire_screen();
    
    line( screen, 200, 0, 200, 480, makecol( 255, 255, 255));
    line( screen, 400, 0, 400, 480, makecol( 255, 255, 255));
    line( screen, 0, 150, 680, 150, makecol( 255, 255, 255));
    line( screen, 0, 300, 680, 300, makecol( 255, 255, 255));
    
    rect( screen, x+1, y+1, x + 199, y + 149, makecol( 255, 255, 0));
        
    release_screen();
    
}    
void updateBoard(){ //draws in selector
    rect( screen, tempX+1, tempY+1, tempX + 199, tempY + 149, makecol( 0, 0, 0));  
    rect( screen, x+1, y+1, x + 199, y + 149, makecol( 255, 255, 0));  
    rest(100);
}  
void announceWinner(){ //Announces the winner
        
         if( turn == 1){
                   textout_ex( screen, font, "X Wins!!!!",  300, 240, makecol( 255, 0, 0), makecol(0, 0, 0));  
         } else {
                  textout_ex( screen, font, "O Wins!!!!",  300, 240, makecol( 255, 0, 0), makecol(0, 0, 0));  
         }  
}
void checkWin(){ //checks for a winner
    
    if( board[0] == turn %26amp;%26amp; board[1] == turn %26amp;%26amp;  board[2] == turn){
        announceWinner();
    } else if( board[0] == turn %26amp;%26amp;  board[3] == turn  %26amp;%26amp; board[6] == turn){
        announceWinner();
    } else if( board[0] == turn %26amp;%26amp;  board[4] == turn  %26amp;%26amp; board[8] == turn){
        announceWinner();
    } else if( board[1] == turn %26amp;%26amp;  board[4] == turn  %26amp;%26amp; board[7] == turn){
        announceWinner();
    } else if( board[2] == turn %26amp;%26amp;  board[4] == turn  %26amp;%26amp; board[6] == turn){
        announceWinner();
    } else if( board[2] == turn %26amp;%26amp;  board[5] == turn  %26amp;%26amp; board[8] == turn){
        announceWinner();
    } else if( board[3] == turn %26amp;%26amp;  board[4] == turn  %26amp;%26amp; board[5] == turn){
        announceWinner();
    } else if( board[6] == turn %26amp;%26amp;  board[7] == turn  %26amp;%26amp; board[8] == turn){
        announceWinner();
    }
    
}    
    
void drawXO(){ //draws in the X and O
   
   acquire_screen();
   
   if(turn == 1){
    draw_sprite( screen, xSprite, x, y);
    board[curSquare] = 1;
    checkWin();
    ++turn;   
  } else if( turn == 2){
    draw_sprite( screen, oSprite, x, y);
    board[curSquare] = 2;
    checkWin();
    --turn;
  }
  
  release_screen();
  
  rest(100);
  
  }      
void moveBox(){ //takes input
    
    clear_keybuf();
    tempX = x;
    tempY = y;
    
    if( key[KEY_UP] %26amp;%26amp; y != 0){
    
        y -= 150;
        curSquare -=3;
        updateBoard();
            
    } else if( key[KEY_DOWN] %26amp;%26amp; y != 300){
    
        y += 150;
        curSquare +=3;
        updateBoard();
            
    }  else if( key[KEY_RIGHT] %26amp;%26amp; x != 400){
    
        x += 200;
        ++curSquare;
        updateBoard();
            
    } else if( key[KEY_LEFT] %26amp;%26amp; x != 0){
    
        x -= 200;
        --curSquare;
        updateBoard();
            
    } else if( key[KEY_ENTER] %26amp;%26amp; board[curSquare] == 0){
    
        drawXO();
            
    }          
    
}    
int main(){
 
    allegro_init();
    install_keyboard();
    set_color_depth(16);
    set_gfx_mode( GFX_AUTODETECT, 640, 480, 0, 0);
    
    xSprite = load_bitmap( "x.bmp", NULL);
    
    oSprite = load_bitmap( "o.bmp", NULL);
    setupBoard();
    
    while( !key[KEY_ESC]){
        moveBox();    
        
    }    
    
    destroy_bitmap( xSprite);
    destroy_bitmap( oSprite);
    
    return 0;
    
}   
END_OF_MAIN();
How can i actually PLAY the game i made using C++?
Maybe im not reading it right, but i dont ever see your main access your function that takes input, along with some other functions. Sorry if im not a help. I'm unfamiliar with some of your syntax, and i would have a different style.
But definitely go to the debug tool step over and such.
Reply:Use a debugger and trace your program step-by-step to see what is not working properly.
Reply:try to test your functions parameter
Subscribe to:
Post Comments (Atom)
 
No comments:
Post a Comment