#include <allegro5/allegro.h>
#include <allegro5/allegro_primitives.h>
#include <allegro5/allegro_ttf.h>
ALLEGRO_DISPLAY * okno = NULL;
ALLEGRO_BITMAP * kwadracik = NULL;
ALLEGRO_FONT * F16, * F40 = NULL;
ALLEGRO_MOUSE_STATE myszka;
int mx, my, mb, mz;
int a = 50;
int bx[ 65 ], by[ 65 ], p[ 65 ];
void init()
{
al_init();
al_install_mouse();
al_init_primitives_addon();
al_init_ttf_addon();
al_set_new_display_flags( ALLEGRO_FULLSCREEN );
okno = al_create_display( 800, 600 );
kwadracik = al_create_bitmap( a, a );
al_convert_mask_to_alpha( kwadracik, al_map_rgb( 0, 0, 0 ) );
F16 = al_load_ttf_font( "arialbd.ttf", 16, 0 );
F40 = al_load_ttf_font( "arial.ttf", 40, 0 );
}
void mouse()
{
mz = 0;
mx = myszka.x;
my = myszka.y;
mb = myszka.buttons;
al_get_mouse_state( & myszka );
};
void strefy()
{
int b = 0;
for( int y = 0; y < 8; ++y )
for( int x = 0; x < 8; ++x )
{
++b;
bx[ b ] = 350 + x * a;
by[ b ] = 100 + y * a;
if( mx > bx[ b ] + 5 && mx < bx[ b ] + a - 1 - 5 && my > by[ b ] + 5 && my < by[ b ] + a - 1 - 5 )
mz = b;
}
}
void rys_plan()
{
strefy();
al_set_target_bitmap( kwadracik );
al_draw_filled_rectangle( 5, 5, a - 5, a - 5, al_map_rgb( 0, 120, 0 ) );
al_draw_rectangle( 5, 5, a - 5, a - 5, al_map_rgb( 0, 0, 0 ), 0 );
al_set_target_bitmap( al_get_backbuffer( okno ) );
al_clear_to_color( al_map_rgb( 80, 120, 120 ) );
for( int i = 1; i < 65; ++i )
al_draw_bitmap_region( kwadracik, 0, 0, a, a, bx[ i ], by[ i ], 0 ),
al_draw_textf( F16, al_map_rgb( 200, 200, 0 ), bx[ i ] + 17, by[ i ] + 17, 0, "%d", i ),
al_flip_display(), al_rest( 0.05 );
al_draw_textf( F16, al_map_rgb( 20, 20, 0 ), 200, 200, 1, "Numer zaznaczonego pola" );
al_draw_textf( F16, al_map_rgb( 20, 20, 0 ), 200, 400, 1, "Myszka klik - koniec" );
}
int main()
{
init();
rys_plan();
while( !myszka.buttons != 0 )
{
mouse();
strefy();
if( mz == 0 ) al_draw_filled_rectangle( 160, 220, 240, 280, al_map_rgb( 80, 120, 120 ) );
if( mz > 0 )
al_draw_filled_rectangle( 160, 220, 240, 280, al_map_rgb( 80, 120, 120 ) ),
al_draw_textf( F40, al_map_rgb( 200, 200, 0 ), 180, 220, 0, "%d", mz );
al_flip_display();
al_rest( 0.001 );
}
al_destroy_display( okno );
al_destroy_bitmap( kwadracik );
al_destroy_font( F16 );
al_destroy_font( F40 );
}