Código do nosso protótipo de Jogo: Angry Snake.
Autor: Fabiola Garcia | Publicado: 2012-04-06T02:23:00-07:00


O código está devidamente comentado e nele o usuário terá uma noção da animação do jogo.

//AngrySnake_Parcial

/* Aqui estão todas as bibliotecas utilizadas neste código,
&nbsp;&nbsp; que é um protótipo do jogo. */
#include &lt;allegro.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;

/* Nesta parte estão todas as macros utilizadas.
&nbsp;&nbsp; Pretendemos utilizar muito delas, pois facilita
&nbsp;&nbsp; na manutenção futuramente. */

#define TelaX 750
#define TelaY 550
#define TAM 20
#define Start 50
#define UP 1
#define RIGHT 2
#define DOWN 3
#define LEFT 4
#define LEVEL 10

/* Abaixo temos a função IniciaAllegro(); ,
&nbsp;&nbsp; que tem como intenção inicializar a biblioteca
&nbsp;&nbsp; Allegro, e criar a nossa screen que sera utilizada.
&nbsp;&nbsp; 
&nbsp;&nbsp; Algo interessante que usamos é o set_window_tittle(); ,
&nbsp;&nbsp; que escreve algo diferente do nome salvo do arquivo na
&nbsp;&nbsp; borda superior da sua screen. */
&nbsp;&nbsp; 

void IniciaAllegro(){
&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; allegro_init();
&nbsp;&nbsp;&nbsp; install_keyboard(); 
&nbsp;&nbsp;&nbsp; set_color_depth(32); 
&nbsp;&nbsp;&nbsp; set_gfx_mode(GFX_AUTODETECT_WINDOWED,800,600,0,0);
&nbsp;&nbsp;&nbsp; set_window_title("Angry Snake 1.1");
}

/* Está função chamada Menu(); tem como finalidade mostrar
&nbsp;&nbsp; uma tela estática de como será o menu, apenas um
&nbsp;&nbsp; demonstrativo. */

void Menu(){
&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp; // Chamada da função IniciaAllegro();
&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp; IniciaAllegro();
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; // Declaração de BITMAPs utilizados na função Menu.
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; BITMAP *Menu_Fundo = load_bitmap("Menu_Fundo.bmp", NULL);
&nbsp;&nbsp;&nbsp; BITMAP *Menu_Start = load_bitmap("Menu_Start.bmp", NULL);
&nbsp;&nbsp;&nbsp; BITMAP *Menu_Ranking = load_bitmap("Menu_Ranking.bmp", NULL);
&nbsp;&nbsp;&nbsp; BITMAP *Menu_Help = load_bitmap("Menu_Help.bmp", NULL);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; BITMAP *buffer = create_bitmap(800,600);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; // Printa os BITMAPs na tela.
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; draw_sprite(buffer,Menu_Fundo,0,0);
&nbsp;&nbsp;&nbsp; draw_sprite(buffer,Menu_Start,310,300);
&nbsp;&nbsp;&nbsp; draw_sprite(buffer,Menu_Ranking,310,370);
&nbsp;&nbsp;&nbsp; draw_sprite(buffer,Menu_Help,300,430);&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; blit(buffer,screen,0,0,0,0,800,600);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; readkey(); // Para o programa para que posamos ver a versão estática do menu.
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; /* Destroi os bitmaps carregados, para que não fiquem
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ocupando espaço na memória. */
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; destroy_bitmap(Menu_Fundo);
&nbsp;&nbsp;&nbsp; destroy_bitmap(Menu_Start);
&nbsp;&nbsp;&nbsp; destroy_bitmap(Menu_Ranking);
&nbsp;&nbsp;&nbsp; destroy_bitmap(Menu_Help);
&nbsp;&nbsp;&nbsp; destroy_bitmap(buffer);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; allegro_exit(); // Fecha a biblioteca gráfica Allegro.
&nbsp;&nbsp;&nbsp; 
&nbsp; 
}



int main(){
&nbsp;&nbsp;&nbsp; //chama função menu.
&nbsp;&nbsp;&nbsp; Menu();
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; printf("Esta preparado para esse desafio? \n\n !!!PRESS ENTER!!!");
&nbsp;&nbsp;&nbsp; getch();
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; //Chama função que inicializa o Allegro.
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IniciaAllegro();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // O comando clear_to_color(), neste caso
&nbsp;&nbsp;&nbsp; clear_to_color(screen,makecol(255,255,255));&nbsp; //&nbsp; serve para pintar toda a screen de branco.
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; allegro_message("Se vc eh maior de 18 anos\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; click OK!");&nbsp;&nbsp;&nbsp; // Hahahahahaha :P
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; //Variáveis utilizadas na main();
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; int dir = 2;
&nbsp;&nbsp;&nbsp; int x = Start;
&nbsp;&nbsp;&nbsp; int y = Start;
&nbsp;&nbsp;&nbsp; int x2 = Start + TAM;
&nbsp;&nbsp;&nbsp; int y2 = Start + TAM;
&nbsp;&nbsp;&nbsp; 
&nbsp; /* Cria um BITMAP para ser utilizado como buffer,
&nbsp;&nbsp;&nbsp;&nbsp; e desenha os retângulos no mesmo. */
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp; BITMAP *buffer = create_bitmap(800,600);
&nbsp; clear_to_color(buffer,makecol(255,255,255));
&nbsp; rect(buffer,Start,Start,TelaX,TelaY,makecol(0,0,0));
&nbsp; rectfill(buffer,x,y,x2,y2,makecol(0,0,0));
&nbsp; 
&nbsp; blit(buffer,screen,0,0,0,0,800,600);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Aqui se encontra o loop da animação,
&nbsp;&nbsp;&nbsp; while (!key[KEY_ESC]){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // onde se permanece até que a tecla ESC
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // seja pressionada ou Game Over.
&nbsp;&nbsp; 
&nbsp;&nbsp; // Define as condições de movimento para cada direção.&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; if (dir == UP &amp;&amp; y &gt;= Start)
&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y = y - TAM;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y2 = y2 - TAM;
&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; if (dir == RIGHT &amp;&amp; x2 &lt;= TelaX)
&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x = x + TAM;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x2 = x2 + TAM;
&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; if (dir == DOWN &amp;&amp; y2 &lt;= TelaY)
&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y = y + TAM;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y2 = y2 + TAM;
&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; if (dir == LEFT &amp;&amp; x &gt;= Start)
&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x = x - TAM;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x2 = x2 - TAM;
&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Lê as teclas e muda direção da Snake.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Não se pode voltar nunca na direção 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oposta, então implementamos isso também. */
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (key[KEY_UP])
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (dir == DOWN)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dir = DOWN;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else{dir = UP;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (key[KEY_RIGHT])
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (dir == LEFT)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dir = LEFT;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else{dir = RIGHT;}&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (key[KEY_DOWN])
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (dir == UP)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dir = UP;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else{dir = DOWN;} 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (key[KEY_LEFT])
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (dir == RIGHT)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dir = RIGHT;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else{dir = LEFT;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Verifica se houve colisão, e se eventualmente
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; colidir |Game Over| aparece na tela,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e retorna 0 (FALSE), fazendo com que o programa acabe. */
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (x &lt; Start || y &lt; Start || x2 &gt; TelaX || y2 &gt; TelaY)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allegro_message("|Game Over|");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Depois de cada 'passada' do loop principal,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; redesenha a Snake com suas novas posições. */
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clear_to_color(buffer,makecol(255,255,255));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rect(buffer,Start,Start,TelaX,TelaY,makecol(0,0,0));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rectfill(buffer,x,y,x2,y2,makecol(0,0,0));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; draw_sprite(screen,buffer,0,0);
&nbsp;&nbsp;&nbsp;&nbsp; 

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rest(200);&nbsp;&nbsp;&nbsp; /* O comando rest(); serve para controlar
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a velocidade do jogo. */
&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}
END_OF_MAIN();