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