Pesquisar na Comunidade
Mostrando resultados para as tags ''alicação dinâmica''.
Encontrado 1 registro
-
Olá galera, eu gostaria de saber se alguém conseguiria me ajudar na implementação dos prototypes do exercício abaixo, porque eu não domino muito arquivo e alocação dinâmica, sendo que o programa jogo da velha funciona da seguinte forma: O Jogador1 inicia a primeira jogada escolhendo dentro de uma matriz 3x3 uma posição, por exemplo velha.matriz[2][2] = 1;. O Jogador2 valida se o Jogador1 ganhou, caso tenha ganhado o mesmo retorna o valor diferente de 0 (zero), senão realiza a sua jogada diferente da jogada do Jogador1. Exemplovelha.matriz[0][0] = 2; A cada rodada, os jogadores deverão ler e escrever em um arquivo a matriz do jogo da velha. Ao final quem conseguir marcar primeiro um linha adjacente é o vencedor da rodada. O jogo será em formato de melhor de três rodadas (desconsiderando velha [empate]). Caso ocorram 5 (cinco) velhas consecutivas, o vencedor será o que estiver com maior quantidade de rodadas ganhas, caso o número de rodadas ganhas seja igual, será sorteado um dos dois jogadores para iniciar a primeira jogada manualmente, sendo que a jogada deverá ser diferente das jogadas iniciais que causaram as “velhas”, e o vencedor desta, será o ganhador da atual batalha. #include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> struct tJogada { int coluna; int linha; int quem; }; typedef struct tJogada Jogada; struct tVelha { int matriz[3][3]; }; typedef struct tVelha Velha; /* Voce dever implementar apenas um conjuntos de funcoes */ void imprimir34033 (int jogada, Velha * velha); Velha * lerVelha34033 (char * nomeArquivo); void criarJogada34033 (int quem, char * nomeArquivo, Jogada * jogada); int validaJogada34033 (char * nomeArquivo, Jogada * jogada); void salvarVelha34033 (Velha *velha); /* Sera utilizado apenas para os seus testes */ void criarJogada2 (int quem, char * nomeArquivo, Jogada * jogada); int validaJogada2 (char * nomeArquivo, Jogada * jogada); void criarJogada1 (int quem, char * nomeArquivo, Jogada * jogada) { criarJogada34033(quem, nomeArquivo, jogada); } int validaJogada1 (char * nomeArquivo, Jogada * jogada) { return validaJogada34033(nomeArquivo, jogada); } void imprimirVelha (int jogada, char * nomeArquivo) { Velha * velha = lerVelha34033(nomeArquivo); imprimir34033(jogada, velha); } int main() { char * nomeArquivo = "matriz.txt"; int jogada = 0; int ganhou = 0; int numero = 0; while (jogada < 4) { Jogada j1; numero = 1; criarJogada1(numero, nomeArquivo, &j1); /* A funcao validaJogada deve fechar o programa caso uma inconsistancia seja encontrada */ ganhou = validaJogada2(nomeArquivo, &j1); imprimirVelha(jogada + 1, nomeArquivo); if(ganhou) { printf("\n GANHOU JOGADOR %i", numero); break; } Jogada j2; numero = 2; criarJogada2(numero, nomeArquivo, &j2); /* A funcao validaJogada deve fechar o programa caso uma inconsistancia seja encontrada */ ganhou = validaJogada1(nomeArquivo, &j2); imprimirVelha(jogada + 1, nomeArquivo); if(ganhou) { printf("\n GANHOU JOGADOR %i", numero); break; } jogada++; } if(!ganhou) { printf("\n EMPATE!"); } return 0; } Agradeço já!