Ir ao conteúdo

Posts recomendados

Postado
#include <stdio.h> //biblioteca padrão;
#include <stdlib.h> //biblioteca padrão
#include <locale.h> 
#include <windows.h>
#include <conio.h>
#include <time.h>
 
 int contagem (int matriz_numeros[5], int matriz_respostas[5]);
 
int main(void){
    //Variáveis
    int i = 0, j = 0, numdeacertos = 0; //int i= 0 vai controlar o contador, j= 0 vai controlar os segundos em que o usuário vai ter para colocar os números, numdeacertos é o número de acertos em que o usuário vai ter;
    char c; //Inicio do jogo;
	int matriz_numeros[5];
	int matriz_respostas[5];
    char nome[50];
   
    //Comando de regionalização;
    
    setlocale(LC_ALL, "Portuguese");
    
    //Título do programa;
    
    SetConsoleTitle("Jogo da memoria simples");
   
    srand(time(NULL)); //Semente para gerar os números aleatórios;
    
    printf("\n||================================================================================================||");
    printf("\n||                          BEM VINDO AO JOGO DA MEMÓRIA!!!                                       ||");
    printf("\n|| -> Olá! Por favor, digite seu nome e logo em seguida irá aparecer as regras do jogo.           ||");
    printf("\n|| -> DIVIRTA-SE!                                                                                 ||");
    printf("\n||================================================================================================||");
    //printf("\n Logo em seguida irá aparecer as regras do jogo. Divirta-se!\n\n");
    printf("\n\n -> Nome do Jogador: \n");
    scanf("%s", &nome);
    printf("\n||==============================================================================================================||");
    printf("\n|| REGRAS DO JOGO:                                                                                              ||");
    printf("\n|| Estas são as instruções que o jogador deve seguir:                                                           ||");
    printf("\n|| 1- Este programa irá gerar 5 números aleatórios entre 1 e 100.                                               ||");
    printf("\n|| 2- Você deve decorar os números exibidos em 10 segundos e depois escreve-los na ordem em que foram exibidos. ||");
    printf("\n||==============================================================================================================||");
    printf("\n");
	printf("\n -> Para iniciar, Pressione ENTER e bom jogo! :)\n");
	
    do{
        c = getch(); //Esperar o enter do usuário
    }while (c != 13);
   
    for (i= 0; i< 5; i++){
        matriz_numeros[i]= (rand() % 99)+1; //Para armazenar os números aleatórios no vetor i, números entre 0 e 29 + 1 para gerar os números que queremos;
    }
   
    j= 10; //Número desejado para contagem dos segundos;
   
    do{
        system ("cls"); //Limpa a tela
        printf ("-> Decore os numeros abaixo em: %d!!!\n\n\n", j);
        j--; //Decrementação do j para que ele vire o valor antecessor dos números desejados para os segundos;
        for (i= 0; i< 5; i++){
            printf ("%d\t", matriz_numeros[i]);
        }
        Sleep (1000); //Espero um segundo e volto para o loop;
        
    }while (j> 0); //Este loop vai acontecer enquanto j for maior que 0;
   
    system ("cls"); //Limpa a tela novamente;
    printf (" -> Informe os números que foram exibidos: \n");
   
    for (i= 0; i< 5; i++){
        printf ("\t%d° número: ", i+1); //Primeiro número, segundo número, terceiro número, quarto número, quinto número (...);
        scanf ("%d", &matriz_respostas[i]); //Ler a resposta do usuário;
        if (matriz_respostas[i]==matriz_numeros[i]){ //Se o vetor de resposta for equivalente ao vetor de números, então o usuário acertou;
            numdeacertos++; //Acertos dos números digitados pelo usuário;;
        }
    }
   
    if (numdeacertos== 5){ //Se o usuário acertou os números pedidos, printf;
        printf ("\n\n -> Parabéns, sua memória é excelente! :) Veja os número exibidos:\n\n\t");
        for (i= 0;i< 5; i++){ //Realiza o mesmo loop do começo do código, para exibir o vetor dos números para o usuário;
            printf ("%d\t", matriz_numeros[i]);
        }
    }
    else //Caso contrário, printf; 
    {
        printf ("\n\n -> Que pena, sua memória não é muito boa!  Veja os número exibidos e tente novamente. :) :\n\n\t");
        for (i= 0;i< 5; i++){ //Mostra os números para o usuário;
            printf ("%d\t", matriz_numeros[i]);
        }
    }
    printf ("\n\n");
    system ("pause");
    return 0;
}
 int contagem (int matriz_numeros[5], int matriz_resposta [5]){
 	for (int i= 0; i< 5; i++){
	 }
 }

 

Postado
#include <stdio.h>  // Biblioteca para printf e scanf
#include <stdlib.h> //Biblioteca para o rand()
#include <time.h> // Biblioteca para srand(time(null))
#include <locale.h> 
#include <windows.h>
#include <conio.h>

// nesse programa irei criar um jogo da memória para dois jogadores, com pontuação indivudual

int contagem (int numeros[5], int respostas[5]);

int main()
{
    srand(time(NULL));//Altera o valor do rand() a cada inicialização do programa;
    // Essas são as variáveis que eu criei, jogo é a matriz com as respostas, contpar seira os acertos
    // c1, c2... serão as coordenadas digitadas pelo usuário, pos1, pos2... serão as posição aleatórias
    // para alocação dos pares de números na matriz jogo, e num será os numeros a formarem pares de 1 a 8
    // jogador dirá de quem é a vez no momento, e pont1 e 2 são as pontuações dos respectivos jogadores 1 e 2
    
    int jogo[4][4];
    int a, b, contpar, c1, c2, c3, c4, pos1, pos2, pos3, pos4, num = 1;
    contpar = 0;
    int jogador, pont1, pont2;
    jogador = 1;
    pont1 = 0;
    pont2 = 0;
    int numeros[5];
    int respostas[5];
    int i, j;
    char nome[50];
    char c;
    
    //Comando de regionalização;
    
    setlocale(LC_ALL, "Portuguese");
    
    //Título do programa;
    
    SetConsoleTitle("Jogo da memoria simples");
   
    srand(time(NULL)); //Semente para gerar os números aleatórios;
    
    printf("\n||================================================================================================||");
    printf("\n||                          BEM VINDO AO JOGO DA MEMÓRIA!!!                                       ||");
    printf("\n|| -> Olá! Por favor, digite seu nome e logo em seguida irá aparecer as regras do jogo.           ||");
    printf("\n|| -> DIVIRTA-SE!                                                                                 ||");
    printf("\n||================================================================================================||");
    //printf("\n Logo em seguida irá aparecer as regras do jogo. Divirta-se!\n\n");
    printf("\n\n -> Nome do Jogador: \n");
    scanf("%s", &nome);
    printf("\n||==============================================================================================================||");
    printf("\n|| REGRAS DO JOGO:                                                                                              ||");
    printf("\n|| Estas são as instruções que o jogador deve seguir:                                                           ||");
    printf("\n|| 1- Este programa irá gerar 5 números aleatórios entre 1 e 100.                                               ||");
    printf("\n|| 2- Você deve decorar os números exibidos em 10 segundos e depois escreve-los na ordem em que foram exibidos. ||");
    printf("\n||==============================================================================================================||");
    printf("\n");
    printf("\n -> Para iniciar, Pressione ENTER e bom jogo! :)\n");
    
    do{
        c = getch(); //Esperar o enter do usuário
    }while (c != 13);
    
    // com esse loop, o programa inicializará todos os elementos da matriz jogo com 0, o que nos
    // ajudará a posicionar os pares nessa mesma matriz no próximo passo
    for (a = 0; a < 4; a++)
    {
        for (b = 0; b < 4; b++)
        {
            jogo[a] = 0;
        }
    }
    
     j= 3; //Número desejado para contagem dos segundos;
   
    do{
        system ("cls"); //Limpa a tela
        printf ("-> Preparem-se!!! O jogo começa em %d!!!\n\n\n", j);
        j--; //Decrementação do j para que ele vire o valor antecessor dos números desejados para os segundos;
        for (i= 0; i< 4; i++){
            printf ("%d\t", numeros);
        }
        Sleep (1000); //Espero um segundo e volto para o loop;
        
    }while (j> 0); //Este loop vai acontecer enquanto j for maior que 0;
   
    // Esse loop é que vai atribuir os pares a matriz jogo. Ele gera quatro numeroa aleatórios de 0 a 3,
    // exatamente como podemos usar numa matriz 4x4. A primeira condição garante que serão atribuídos valores de 1 a 8
    // a espaços que não tenham sido preenchidos ainda. Considerando que o 0 é quando ele não foi preenchido, ele procura
    // duas posições que valem 0 e com a segunda condição, ele garante que as duas posições não serão iguais.
    // Quando ele acha duas posições que satisfazem essas condições, ele as preenchem com o número um, soma mais um a
    // a variável num, e procura duas coordenadas que ainda não tenham sido preenchidas
    
    system("cls");
    
    while (num <= 
    {
        pos1 = rand()%4;
        pos2 = rand()%4;
        pos3 = rand()%4;
        pos4 = rand()%4;
        
        if (jogo[pos1][pos2] == 0 && jogo[pos3][pos4] == 0)
        {
            if (pos1 != pos3 && pos2 != pos4)
            {
                jogo[pos1][pos2] = num;
                jogo[pos3][pos4] = num;
                num++;
            }
        }
    }
    // essa é a matriz que será mostrada para o usuário, que será preenchida toda com 0 e a medida que
    // o jogador acertar os pares, esses pares serem substituídos na matriz esc, até ser toda preenchida e o jogo acabar.
    int esc[4][4];
    
    for (a = 0; a < 4; a++)
    {
        for (b = 0; b < 4; b++)
        {
            esc[a] = 0;
            printf("%d ", esc[a]);
        }
        printf("\n");
    }
    /*
     for (a = 0; a < 4; a++)
     {
        for (b = 0; b < 4; b++)
        {
            printf("%d ", jogo[a]);
        }
        printf("\n");
     }
    */
    while (contpar <  // contpar foi inicializado com 0, ou seja, quando contpar/número de acertos chegar a 8, o jogo acaba
    {
        printf("Vez do jogador %d\n", jogador);
        printf("Entre com uma cordenada(max = 4 4): ");
        scanf("%d %d", &c1, &c2);
        printf("O número da posicao eh %d\n", jogo[c1 - 1][c2 -1]);
        printf("Entre com outra coordenada: ");
        scanf("%d %d", &c3, &c4);
        printf("O número da posicao eh %d\n", jogo[c3 - 1][c4 -1]);
        // com isso foi pedido as coordenadas para localizar os pares na matris jogo
        c1 = c1 - 1;
        c2 = c2 - 1;
        c3 = c3 - 1;
        c4 = c4 - 1;
        // essa parte do c1 = c1 - 1... é apenas um detalhe para facilitar na hora de digitar uma linha por coluna, é opicional
        
        // Aqui nós temos nossas condições, se o valor da coordenada 1 for = a da coordenada 2 Ele vai somar um ponto pro jogador da vez,
        // substituir o valor certo na matriz escondida, para o jogador ver os acertos e somar um ponto para o número de acertos. Depois ele vai
        // reimprimir a matriz esc com os pares acertaos impressos
        if (jogo[c1][c2] == jogo[c3][c4] && esc[c1][c2] == 0 && esc[c3][c4] == 0)
        {
            contpar++;
            esc[c1][c2] = jogo[c1][c2];
            esc[c3][c4] = jogo[c3][c4];
            if (jogador == 1)
            {
                pont1++;
            }
            else if(jogador == 2)
            {
                pont2++;
            }
            
            for (a = 0; a < 4; a++)
            {
                for (b = 0; b < 4; b++)
                {
                    printf("%d ", esc[a]);
                }
                printf("\n");
            }
        }
        else
        {
            printf("Errou, tente de novo\n");
            jogador++; // se o jogador errar ele perde a vez
        }
        
        // Aqui foi como eu fiz para o jogador ser apenas 1 ou 2, toda vez que o jogador erra, soma-se um a variável jogador
        // se o jog 1 erra, agora é o jog 2, porém se o jog 2 erra não vai para jog 3 porque com a condição abaixo, se jog > 2
        // subtrai-se 2 do numero, ou seja 3 - 2 = 1, e volta a ser a vez do jog 1.
        if (jogador > 2)
        {
            jogador = jogador - 2;
        }
        printf("Jogador 1: %d pts\nJogador 2: %d pts\n", pont1, pont2);
    }
    
    // aqui é apenas para dizer quem ganhou a partida
    if (pont1 > pont2)
    {
        printf("Jogador 1 Venceu");
    }
    else if (pont2 > pont1)
    {
        printf("Jogador 2 Venceu");
    }
    else
    {
        printf("Empatou u.u");
    }
    
    
   return 0;
}
int contagem (int numeros[5], int resposta [5]){
     for (int i= 0; i< 5; i++){
     }
 }

 

 

 

/*Modifiquei o código, e ele ficou assim! porém, aparece lixo de caracteres no meio da execução do codigo ( enquanto ele ta rodando ), o sr. sabe como posso retirar o lixo deste código?

O código tem uns printf para modificar e tudo mais, não está 100% pronto!*/

 

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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!