Ir ao conteúdo
  • Cadastre-se

Michel De Lima

Membro Pleno
  • Posts

    24
  • Cadastrado em

  • Última visita

Reputação

24
  1. @devair1010 Sim, exatamente isso, o alfabeto so tem 26 e por isso faltava 6 caracteres para alcançar os 32 para fazer todos pares, o professor disse que dava para completar com outros caracteres especiais tipo "@#$%&*", mas eu teria que fazer um vetor e chama lo na matriz para isso. Obrigado pela ajuda, vou estudar o código agora.
  2. não consegui colocar pares, alguém pode me ajudar? #define N 8 //número de linhas e colunas #define C 26 //número de cartas int main() { //Variáveis char mat[N][N], nome[50], vet[C*2], jogada[2][2]; int i, j, c, n, opcao, pts=0, t=10, acertos = 0; /* Mostra o tabuleiro gera os letras aleatórias e imprime a matriz*/ printf("\n-------------------------------------\n"); printf(" # "); for(i=0; i<8; i++) { printf(" %d ", i); } printf("\n-------------------------------------\n"); for (i = 0; i < 8; i++) { printf(" %d |", i); for (j = 0; j < 8; j++) { vet[C] = 'A' + (char)(rand()%32); mat[i][j] = vet[C]; printf(" %c |", mat[i][j]); } printf("\n"); } printf("---------------------------------------\n");
  3. @devair1010 o alfabeto so tem 26 letras, dai tem esse problema
  4. Ainda não tem funções, porque não aprendemos ainda na faculdade
  5. @arfneto @devair1010 fiz aqui meu algoritmo, meu jogo esta quase pronto se quiserem dar um feedback :).. #include <stdio.h> #include <time.h> #include <stdlib.h> #include <locale.h> #include <windows.h> #include <conio.h> #define N 8 #define C 64 int main() { char mat[N][N], nome[50], vet[C], jogada[2][2]; int i, j, c, n, opcao, pts=0, t=10; system("title JOGO DA MEMÓRIA 1.0 BY MICHEL"); setlocale(LC_ALL, "Portuguese"); fflush(stdin); system("color 0B"); srand(time(NULL)); printf(" #############################################\n"); printf(" ###### Bem vindo (a) ao jogo da memória #####\n"); printf(" #############################################\n"); printf(" ---------------------------------------------\n"); printf(" [1] JOGAR\n"); printf(" [2] SAIR\n"); printf(" ---------------------------------------------\n"); printf(" Escolha uma opção: "); scanf("%d", &opcao); printf(" #############################################\n"); system("cls"); switch (opcao) { case 1: // usuário digita seu nome para jogar e vê os objetivos do jogo printf("\n--------------------------------------\n"); printf(" Nome do jogador? "); scanf("%s", &nome); printf("--------------------------------------\n\n"); printf(" Olá %s!\n O objetivo do jogo é achar duas cartas iguais a cada rodada.\n E alcançar os mil pts :)\n\n Boa sorte!!! ;)\n\n",nome); system("Pause"); printf("\n"); //limpa a tela system("cls"); printf("--------------------------------------\n"); printf(" TABULEIRO DO JOGO\n"); printf("--------------------------------------\n"); printf(" JOGADOR: %s\n", nome); printf(" PONTOS : %d pts\n", pts); printf("--------------------------------------\n"); // gera os letras aleatórias e imprime a matriz printf(" # "); //esconde a matriz for(i=0; i<8; i++) { printf(" %d ", i); } printf("\n-------------------------------------\n"); for (i = 0; i < 8; i++) { printf(" %d |", i); for (j = 0; j < 8; j++) { mat[i][j] = 'A' + (char)(rand()%26); printf(" %c |", mat[i][j]); } printf("\n"); } printf("---------------------------------------\n"); //loop de contagem regressiva printf ("Memorize o tabuleiro...\n"); while (t>0) { printf ("%d ", t); t--; Sleep (1000); } //limpa a tela após o loop system("cls"); while(opcao == 1) { printf(" ::: Informe as posições da jogada :::\n\n"); for(i=1; i<3; i++) { printf(" %dº Carta\n", i); for(j=1; j<3; j++) { scanf("%c", &jogada[i][j]); } } if(jogada[i][j] == mat[i][j]) { printf(" PARABÉNS! VOCÊ ACERTOU! =)\n\n GANHOU 100 PTS!\n\n"); pts = pts + 100; //continue; } else if(jogada[i][j] != mat[i][j]) { printf("\n ERROU! :(\n\n"); continue; } else if(jogada[i][j] > 8 || jogada[i][j] < 0) { printf(" JOGADA INVÁLIDA!\n\t\t\t\tA LINHA PRECISA SER VALORES DE 0 A 8\n\t\t\t\tE A COLUNA TAMBÉM!!!\n\n"); continue; system("cls"); } else if(pts == 1000) { printf(" PARABÉNS! VOCÊ ALCANÇOU OS MIL PONTOS!!! ;)\n\n"); printf(" PARABÉNS! SUA MEMÓRIA É ÓTIMA!!! :)\n\n"); printf(" Deseja jogar novamente?\n"); printf(" [1] SIM | [2] NÃO\n"); scanf("Opção: %d", &opcao); if(opcao == 1) { pts = 0; } else if(opcao == 2) { exit(1); } else { printf("Opção inválida!"); } } break; } case 2: exit(1); default: printf (" OPÇÃO INCORRETA!!!\n\n"); system("Pause"); return 0; } }
  6. @devair1010 Exatamente isso. A letras não podem aparecer também no começo.
  7. @devair1010 Quase isso, é apenas uma letra em cada célula, o usuario escolhe 2 celulas, se forem iguais ele marca um ponto e por ai vaii... O tabuleiro precisa ter 64 caracteres, e 32 pares de caracteres (char). Matriz 8x8.
  8. @devair1010 Isso, exatamente, é um jogo da memoria da faculdade, então preciso preencher essa matriz 8x8 com um vetor aleatório. Fiz o teste com meu algoritmo e ele está gerando a mesma letra algumas letras 3 vezes ou 4 vezes, preciso que todas sejam pares, tipo AA, BB, CC, segue meu codigo... #include <stdio.h> //funções de entrada/saída #include <stdlib.h> //funções de uso geral #include <time.h> //funções que pega a hora do PC como base #include <locale.h> //funções de idiomas #define N 8 //número de linhas e colunas #define C 64 //número de cartas int main() { //variáveis char mat[N][N], vet[C]; int i, j, n; setlocale(LC_ALL, "Portuguese"); fflush(stdin); printf("\n---------------------------------------------\n"); //Preenchendo a matriz com as cartas for(i=0; i<7; i++) { for(j=0; j<7; j++) { vet[C]= 'A' + (char)(rand()%26); mat[i][j] = vet[C]; printf("%2c | ", mat[i][j]); } printf("\n"); } printf("---------------------------------------------\n"); system("Pause"); return 0; }
  9. Olá a todos!, estou desenvolvendo um programa em C de "jogo da memória", em uma matriz 8x8 que gera letras aleatória a cada execução do programa, as letras são armazenadas nesse vetor: vetor[C]= 'A' + (char)(rand()%26*2); Preciso que gere um par de cada letra dentro da matriz 8x8 e dessa forma só esta embaralhando "as cartas" com 3 e até 4 das mesmas. Como faço para sair apenas pares de letras?
  10. @arfneto é que voce não entendeu minha pergunta no fórum e nem o meu objetivo, e não leu nada que eu escrevi em cima lá, lhe falta interpretar melhor os textos aqui, meu objetivo era fazer rodar o programa que eu fiz no code::blocks para rodar no Dev. E consegui resolver e entregar antes do prazo!!! Com o problema de uma simples variável. Infelizmente são IDEs diferentes e interpretam diferente os algoritmos!!! valeu falou!!!!
  11. @arfneto Obrigo por ajudar!!!, mas ontem mesmo já tinha encontrado meu erro, esqueci de declarar o maior = 0; daí o Dev bugava do maior pra baixo por causa disso. Não era problema com o Dev e sim a variável maior estava recebendo a propria matriz, maior = matriz [l][c]; agora roda no dev e no codeblocks normalmente. O Dev é um pouco mais chatinho na hora de iniciar uma variável com zero (0), no code::blocks aceita iniciar sem ser zerada, ,as no Dev não, por isso o programa se perdia no Dev e gerava aqueles caracteres errados. Isso deve ser porque o Dev é antigo e foi pouco atualizado como já foi mencionado aqui. A faculdade exige ser no Dev os programas. Agora já peguei o jeito dele /*Exercício: Faça um programa em C que leia uma matriz NxM de valores reais, encontre o maior valor de cada linha e o armazene em um vetor. Encontre também o maior valor da matriz e utilize para dividir todos os elementos da matriz por ele.*/ #include <stdio.h> // biblioteca de funções de entrada/saída #include <stdlib.h> // biblioteca de funções de uso geral #include <locale.h> //biblioteca de funções para idiomas int main() { //Idioma em português setlocale(LC_ALL, "Portuguese"); //coloca cor no sistema system("color 5F"); // limpa buffer do teclado. fflush(stdin); //variáveis float matriz[3][4],trans[4][3],vetor[3],maior,soma; int l,c; printf("---------------- Exercício nº 4 -----------------\n"); printf("- Digite valores para os elementos da matriz 3x4:\n"); for (l=0; l<3; l++) for (c=0; c<4; c++) { printf ("-> Elemento[%d][%d] = ", l, c); scanf ("%f", &matriz[l][c]); } printf("-------------------------------------------------\n"); printf("-> Matriz gerada:\n"); for(l = 0; l < 3; l++) { for(c = 0; c < 4; c++) { //mostra a matriz gerada printf(" %.2f ", matriz[l][c]); } printf("\n"); } printf("-------------------------------------------------\n"); printf("-> Maior valor de cada linha:\n"); //encontrar maior valor de cada linha for (l = 0; l < 3; l++) { vetor[l] = matriz[l][c]; for (c = 0; c < 4; c++) { if(matriz[l][c] > vetor[l]) { vetor[l] = matriz[l][c]; } } } for (l=0; l<3; l++) //mostra o vetor com o maior valor de cada linha printf("Linha %d = %.2f\n", l, vetor[l]); printf("-------------------------------------------------\n"); printf("-> Maior valor da matriz:\n"); //encontrar maior valor maior = 0; for(l=0; l<3; l++) { for(c=0; c<4; c++) { if(matriz[l][c] > maior) { maior = matriz[l][c]; } } } //mostra o maior valor da matriz printf(" - Resultado = %.2f\n",maior); printf("-------------------------------------------------\n"); printf("-> A matriz dividida pelo maior valor encontrado:\n"); maior = 0; for (l=0; l<3; l++) { for(c=0; c<4; c++) { if (matriz[l][c]>maior) maior = matriz[l][c]; } } for (l=0; l<3; l++) { for(c=0; c<4; c++) matriz[l][c] = matriz[l][c] / maior; } for (l=0; l<3; l++) { for(c=0; c<4; c++) { //mostra a matriz dividida pelo maior encontrado printf(" %.2f ", matriz[l][c]); } printf("\n"); } printf("-------------------------------------------------\n"); printf("-> A soma dos elementos da matriz após a divisão:\n"); soma=0; for(l=0; l<3; l++) for(c=0; c<4; c++) soma = soma + matriz[l][c]; //mostra a soma depois da divisão printf(" %.2f \n", soma); printf("-------------------------------------------------\n"); printf("-> A transposta da matriz depois da divisão:\n"); for(l = 0; l < 3; l++) { for(c = 0; c < 4; c++) { trans[c][l] = matriz[l][c]; } } for(l = 0; l < 4; l++) { for(c = 0; c < 3; c++) { //mostra a transposta depois da divisão printf(" %.2f ", trans[l][c]); } printf("\n"); } printf("-------------------------------------------------\n"); system( "PAUSE" ); return 0; }
  12. O enunciado esta aqui, o vetor precisa ter 3 posição. alguém pode me ajudar??????????????????/ preciso entregar ate as 00:00h é avaliação!
  13. @arfneto Testei tudo, testei no release no dev C ++ e no code blocks........ pesquisei e parece que o dev C++ precisa de uma atualização no compilador, é o problema de atualização mesmo no Dev C++, porque no codeblocks rolou liso, e o código não tem erros. No codeblocks rodou perfeitamente, é essa porcaria de dev mesmo.

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!