Witam, postanowiłem napisać Kółko i krzyżyk w Allegro (niestety nie miałem zbytnio innego wyboru). Napotkałem pierwszy problem i nie wiem jak go rozwiązać, bo wydaje mi się, że jest wszystko dobrze, a jednak raz narysuje od razu kolko i krzyzyk w jednym polu, albo zamiast X O itd..
int main()
{
int b = -1;
int a = 0;
int result = -1; // zmienna przechowuj¹ca numer kratki do zaznaczenia
allegro_init();
set_gfx_mode(GFX_AUTODETECT_WINDOWED, 900, 600, 0, 0);
install_mouse();
install_keyboard();
draw_field();
unscare_mouse();
show_mouse(screen);
while(!key[KEY_ESC])
{
if(mouse_b != 0){
result = check_mouse_position();
if(result != 0)
a = check_turn(result, a);
}
if(mouse_b == 0)
continue;
else
mouse_b = 0;
}
allegro_exit();
return 0;
}
int check_turn(int option, int motion)
{
if(motion == 0)
{
draw_o(option);
return ++motion;
}
else if(motion == 1)
{
draw_x(option);
return --motion;
}
}
int check_mouse_position()
{
if(mouse_x >= 1 && mouse_x <= 199 && mouse_y >= 1 && mouse_y <=199)
return 1;
else if(mouse_x >= 201 && mouse_x <= 399 && mouse_y >= 1 && mouse_y <=199)
return 2;
else if(mouse_x >= 401 && mouse_x <= 599 && mouse_y >= 1 && mouse_y <=199)
return 3;
else if(mouse_x >= 1 && mouse_x <= 199 && mouse_y >= 201 && mouse_y <=399)
return 4;
else if(mouse_x >= 201 && mouse_x <= 399 && mouse_y >= 201 && mouse_y <=399)
return 5;
else if(mouse_x >= 401 && mouse_x <= 599 && mouse_y >= 201 && mouse_y <=399)
return 6;
else if(mouse_x >= 1 && mouse_x <= 199 && mouse_y >= 401 && mouse_y <=599)
return 7;
else if(mouse_x >= 201 && mouse_x <= 399 && mouse_y >= 401 && mouse_y <=599)
return 8;
else if(mouse_x >= 401 && mouse_x <= 599 && mouse_y >= 401 && mouse_y <=599)
return 9;
else
return 0;
}
Bardzo proszę o pomoc. Dodam tylko, że nie mogę korzystać z allegro 5...