Ir ao conteúdo
  • Cadastre-se

MateusdeDeus

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

Reputação

0
  1. #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!*/
  2. ok, muito obrigado! o sr. sabe como apagar uma antiga publicação?
  3. ola, eu não sabia, vou apagar um então. Tentei, mas não eu certo no caso da matriz.
  4. #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++){ } }
  5. É um trabalho da faculdade, e é exigido uma função e uma matriz. Esta é minha duvida de onde colocar essas etapas, depois do código feito sem ter função e nem uma matriz, que observei que era obrigado colocar, apesar de ta funcionado bem o código. A função vou tentar colocar após o return 0, e só declarar em cima do int main(), para o compilador perceber que tem uma função, já que ele ler de cima para baixo. São minhas primeiras aulas em C, por isso to meio na dúvida ainda. assim: int contagem (int numero[5], int resposta [5]); int main(void){ . . . return 0; } int contagem (int numero[5], int resposta [5]){ for (int i= 0; i< 5; i++){ } } acha que da certo?
  6. #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 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 numeros[5]; int respostas[5]; //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 BEM VINDO AO JOGO DA MEMÓRIA!!!\n\n"); printf("\n================================\n"); printf("\n REGRAS DO JOGO: \n"); printf("\n Esta são as instruções que o jogador deve seguir: \n"); printf("\n 1- Este programa irá gerar 5 números aleatórios entre 1 e 100.\n"); printf("\n 2- Você deve decorar os números exibidos em 10 segundos e depois escreve-los na ordem em que foram exibidos.\n"); printf("\n=============================================\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++){ 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", 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", &respostas[i]); //Ler a resposta do usuário; if (respostas[i]==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", 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", numeros[i]); } } printf ("\n\n"); system ("pause"); return 0; }

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!