Jogo Snake em C++ - Resultados e implementações finais

Inserindo funcioladidades finais (menu inicial e rank dos jogadores)

Nesse post serão abordados aspectos complementares do jogo, ou seja, já é possível usar o projeto com as funcionalidades implementadas até agora, vamos apenas deixar mais configurável e interativo. A cor do jogo pode ser alterada por meio da função system() da biblioteca stdlib.h, isso é feito pela seguinte relação:

Parâmetro da função system() => Cor associada

“color 09” => Azul “color A” => Verde “color C” => Vermelho “color E” => Amarelo “color F” => Branco “color 08” => Cinza “color D” => Lilas “color B” => Verde-agua

Existem três níveis de dificuldes diferenciados pela velocidade que o jogo acontece. A função sleep() da biblioteca windows.h é reponsável pelo atraso na execução do programa, podendo ser aplicada da seguinte forma:

   switch(nivel){
            case 1:
                Sleep(500); // atraso de 1/2 segundo
                break;
            case 2:
                Sleep(250); // atraso de 1/4 de segundo
                break;
            case 3:
                Sleep(75);  // atraso muito pequeno
                break;
            default:
                 system("cls");
                 cout<<"Esse nivel nao e valido!"<<endl;
                 cout<<"Escolha novamente"<<endl;
                 cout<<endl;
                 goto volta;
            }
        }

O menu inicial tem a função de mostrar as informações que estão sendo configuradas. Tela para a escolha das cores:

    system("cls");
    cout<<"########### JOGO SNAKE #############"<<endl;
    cout<<"#                                  #"<<endl;
    cout<<"# Escolha a coloracao do jogo:     #"<<endl;
    cout<<"#                                  #"<<endl;
    cout<<"# 1 - azul         2 - verde       #"<<endl;
    cout<<"# 3 - vermelho     4 - amarelo     #"<<endl;
    cout<<"# 5 - branco       6 - cinza       #"<<endl;
    cout<<"# 7 - lilas        8 - verde-agua  #"<<endl;
    cout<<"#                                  #"<<endl;
    cout<<"####################################"<<endl;
    cout<<endl;

Escolha do nível de dificuldade:

    system("cls");
    cout<<"######## JOGO SNAKE #########"<<endl;
    cout<<"#                           #"<<endl;
    cout<<"# - 0 - iniciar             #"<<endl;
    cout<<"# - 1 - sair                #"<<endl;
    cout<<"#                           #"<<endl;
    cout<<"# Niveis de dificuldade:    #"<<endl;
    cout<<"#                           #"<<endl;
    cout<<"# - 1 - nivel 1             #"<<endl;
    cout<<"# - 2 - nivel 2             #"<<endl;
    cout<<"# - 3 - nivel 3             #"<<endl;
    cout<<"#                           #"<<endl;
    cout<<"#***************************#"<<endl;
    cout<<"# A tecla f reinicia o jogo #"<<endl;
    cout<<"#                           #"<<endl;
    cout<<"# A tecla p paralisa o jogo #"<<endl;
    cout<<"#***************************#"<<endl;
    cout<<"#                           #"<<endl;
    cout<<"############################"<<endl;
    cout<<endl;

Informação de Game Over:

 while(perdeu==false){ // enquanto o usuario nao perdeu o jogo continua
            desenho();
            entrada();
            logica();
            if(perdeu==true){
                system("cls");
                cout<<"####################"<<endl;
                cout<<"##                ##"<<endl;
                cout<<"##                ##"<<endl;
                cout<<"##   GAME OVER!   ##"<<endl;
                cout<<"##                ##"<<endl;
                cout<<"##                ##"<<endl;
                cout<<"####################"<<endl;
                cout<<endl;
                system("pause");
                system("cls");
                main();
                if(escolhas==1){
                    goto sair;
                }
                perdeu=false;
            }

Um som de beep pode ser associado a ação da cobra comer uma fruta, isso no método responsável pela lógica, por meio da função Beep(frequência, duração) da biblioteca windows.h.

O sistema de rank do jogo Snake foi implementado como um método que salva as informações (o nome de 3 jogadores) em um arquivo .txt que fica armazenado na mesma pasta do projeto. Para iniciar o rank é necessário colocar a biblioteca iostream para pode manipular arquivos em C++. O histório dos maiores pontuadores é estabelecido com três posições (1º, 2º e 3º), sendo necessário inserir o nome quando a pontuação supera alguma pontuaçao do rank. Fluxograma do sistema de rankeamento:

rank

Link para o código do método rank: clique aqui

Resultado

Clicando na imagem abaixo ficará disponível um vídeo do jogo Snake com todas as funcionalidades apresentadas nos posts.

Resultado do Projeto

clique aqui para ter acesso ao executável do jogo Snake

Comments