Arcos aleatórios em Allegro – C

//================================================================
// Nome do Arquivo: random_arcs.c
// Filename: random_arcs.c  
//
// Descrição: O programa exibe arcos em posições e cores
//            aleatórias usando a função arc da biblioteca allegro
//================================================================

#include <stdlib.h>
#include <time.h>
#include <allegro.h>

int main(int argc, char *argv[])
{
    // Ponto central do arco, os ângulos de rotação e o raio
    int x, y, ang1, ang2, r;
	
    // Cor da elipse
    int color;
    
	// Inicializa a biblioteca Allegro
	allegro_init();
	
	// Inicializa o módulo do relógio
	install_timer();

	// Inicializa o teclado
	install_keyboard();

	// Define a profundidade de cores para 32 bits
	set_color_depth(32);

	// Define a resolução de 640x480 no modo janela
	set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);
	
	// Muda o título da janela
	set_window_title("Arcs");
	
	// Inicia o gerador de números aleatórios
	srand(time(NULL));
	
	// Fica em loop até pressionar a tecla ESC
	while(!key[KEY_ESC])
	{
	    // Configura os atributos do arco
	    x      = rand() % 640;
	    y      = rand() % 480;
	    ang1   = rand() % 257;
	    ang2   = rand() % 257;
	    r      = rand() % 240;
	    color  = makecol(rand() % 256, rand() % 256, rand() % 256);
	    
	    // Desenha um arco em uma posição e cor aleatória
	    arc(screen, x, y, itofix(ang1), itofix(ang2), r, color);
	    
	    // Espera 300 milisegundos para economizar processamento
	    rest(300);
	    
		// Espera a sincronização vertical
		vsync();
	}

	// Sai do programa
	allegro_exit();
	return 0;     
}
// Esta macro converte o main para WinMain()
END_OF_MAIN();