Ir ao conteúdo
  • Cadastre-se

C++ criação jogo genius em dev c++


Posts recomendados

Boa tarde,

Amigos,estou com dificuldade em terminar um trabalho para a faculdade,a questão é:

Utilizando-se do conceito de modularização implemente o jogo Gênius. Trata-se de um jogo de
memória em que o computador apresenta uma sequência de números e o usuário deve repetir a
sequência. A sequência inicial é composta por apenas um número. A cada acerto do usuário o
computador acrescenta um número à sequência. Quando o usuário acerta a sequência de 10
números, deve passar para o nível seguinte. A diferença entre cada nível é a variedade de valores.
Por exemplo:
Nível 1: números de 1 a 3
Nível 2: números de 1 a 6
Nível 3: números de 1 a 9
Nível 4: números de 1 a 12 e assim sucessivamente.
Deve ser dada a opção de duas pessoas jogarem uma contra a outra, quando, a cada acerto de um
jogador, a vez passa para o outro jogador. No primeiro erro, o jogador da vez é eliminado e vence o
outro jogador.
No caso de 1 jogador só, quando o usuário errar deve ser mostrado na tela até que nível ele foi.
No início e ao final de cada rodada deve ser mostrado o seguinte menu:
(1) 1 jogador
(2) 2 jogadores
(3) Sair

 

Alguém poderia me ajudar? 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

TENHO ISSO PRONTO: 

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<locale.h>

int vali = 1; //valida os whiles dos procedimentos
int tvt = 9/*ultima posição do vetor*/, pvt = 0, lvl = 3, n = 0, idlvl=1;
int vt1[10];//vetor de tamanho 10
int escolha;
void jogo();

void sorteio(){
     setlocale(LC_ALL, "Portuguese"); 
    printf("Grave esta sequência:\n");
    vali = 1;     
    while (vali == 1){
        vt1[pvt] = rand() % lvl + 1;
        printf("-%d-", vt1[pvt]);
    //posição do vetor é = ao tamanho do vetor    ou sejá foram testados todos os numeros
        if (pvt == tvt){
            vali = 0;
        }else{
            pvt++;    
        }
    }
    printf("\n");    
    system("pause");
    system("cls");
    jogo();
}

void jogo(){
     setlocale(LC_ALL, "Portuguese");
        vali = 1;
        pvt = 0; 
        while(vali == 1){
        printf("\nDigite o %d  número\n",pvt+1);
        scanf("%d",&n);
        //printf("%d",n);
        if (vt1[pvt] != n){
            
            printf("Você perdeu no nível %d a sequência correta e:\n",idlvl);
            //printa a sequencia correta
            for(int i=0; i<=tvt; i++){
                printf("-%d-", vt1);    
            }
            vali = 0;
        }
        else if(pvt == tvt){
            printf("Parabéns! Você passou para o nível %d\n\n",idlvl+1);    
            lvl= lvl + 3;
            pvt = 0;
            n = 0;
            sorteio();
            idlvl++;
        }
        else{
            pvt++;    
        }
        //printf("%d",n);
        
    }
}

main(){
       setlocale(LC_ALL, "Portuguese");
    printf("                            BEM-VINDO AO GENIUS                          ");
    printf("\nPara um jogador digite 1 | Para dois jogadores digite 2 | para sair digite 0.\n");
    scanf("%d",&escolha);

    switch (escolha){
        
        case 1:
            printf("UM JOGADOR\n");
            sorteio();
            break;
        
        case 2: 
            printf("DOIS JOGADORES\n");
            printf("voce é o jogador 1\n");
            sorteio();
            printf("voce é o jogador 2\n");
            sorteio();
            break;
            
        case 0:
            printf("\nTCHAU!\n");
            break;
            
    }

 

 

Estou com dúvida no momento em que passa de nível,pois, fica sempre 1 e não aumenta o nível,mas os números são gerados corretamente.

Exatamente aqui "Deve ser dada a opção de duas pessoas jogarem uma contra a outra, quando, a cada acerto de um
jogador, a vez passa para o outro jogador. No primeiro erro, o jogador da vez é eliminado e vence o
outro jogador." a dúvida aumenta. Se alguém puder me ajudar,vou ficar muito grato. 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Felipe Nascimentoo      seu código está bom  e está funcionando bem,  aqui ele já passa de nível,  precisava somar a variável   lvl  .   aqui seu código com algumas modificações :

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<time.h>
#include<windows.h>
#include<locale.h>
int vali=1; //valida os whiles dos procedimentos
int tvt=9/*ultima posição do vetor*/,pvt,lvl=3,n,idlvl=1;
int vt1[10];//vetor de tamanho 10
int escolha;
void jogo();
void gotoxy(int x,int y){
    COORD c;
    c.X = x;
    c.Y = y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
}
void sorteio(){
    printf("Você Está No Nível %d\n",idlvl);
    printf("Grave esta sequência:\n");
    vali = 1;pvt=0;
    while (vali == 1){
        vt1[pvt] = rand() % lvl + 1;
        if(pvt==0)printf("  %d ", vt1[pvt]);
        else printf("- %d ", vt1[pvt]);
        //posição do vetor é = ao tamanho do vetor    ou sejá foram testados todos os numeros
        if (pvt == tvt){
            vali = 0;
        }else{
            pvt++;
        }
    }
    printf("\n");
    system("pause");
    system("cls");
    jogo();
}
void jogo(){
    vali = 1;
    pvt = 0;
    while(vali == 1){
        printf("Digite O %d  Número ",pvt+1);
        scanf("%d",&n);
        if (vt1[pvt] != n){
            printf("\n");
            printf("Você perdeu no nível %d a sequência correta e:\n",idlvl);
            //printa a sequencia correta
            for(int i=0; i<=tvt; i++){
                if(i==0)printf("  %d ", vt1[i]);
                else printf("- %d ", vt1[i]);
            }
            vali = 0;
            printf("\n\n         ");
            for(vali=10;vali>-1;vali--){
                gotoxy(15,5);
                printf(" %d ",vali);
                Sleep(200);
            }
            gotoxy(15,5);
            printf("   \n\n");
        }
        else
            if(pvt == tvt){
                printf("Parabéns! Você passou para o nível %d\n\n",idlvl+1);
                lvl= lvl + 3;
                pvt = 0;
                n = 0;
                sorteio();
                idlvl++;
                lvl++;
                Sleep(2000);
                vali=0;
            }
            else{
                pvt++;
            }
    }
}
int main(){
    setlocale(LC_ALL, "");
    srand(time(NULL));/* para gerar números randomicos diferentes */
    do{
        system("cls");
        printf("\n\n      =================   BEM-VINDO AO GENIUS   ================     \n\n");
        printf("\n0 - para sair Do Jogo\n1 - Para um jogador\n2 - Para dois jogadores "   );
        printf("\n         ");
        fflush(stdin);
        escolha=getch()-48;/* não precisar pessionar enter*/
        switch (escolha){
            case 1:
                printf("\n ---- UM JOGADOR ----\n");
                sorteio();
                break;
            case 2:
                printf("\n ---- DOIS JOGADORES ----\n\n");
                printf("voce é o jogador 1\n\n");
                sorteio();
                printf("Agora é A Vez Do Jogador 2\n\n");
                sorteio();
                break;
            case 0:
                printf("\n       TCHAU");
                for(vali=0;vali<10;vali++){
                    printf(" .");
                    Sleep(200);
                }
                printf("!\n\n");
                break;
        }
    }while(escolha != 0);
}

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!