Continuo a tentar evoluir os meus conhecimentos em C tentado criar o “meu” Jogo do Galo. No post anterior, Jogo do Galo em C – Versão 1.01 o visitante Ricardo referiu que eu deveria implementar uma função para efectuar a leitura das coordenadas para evitar ter de repetir sempre esse pedaço de código.
Confesso que ainda tenho algumas dificuldades a implementar funções, nomeadamente na definição dos argumentos e dos parâmetros, e como tal para conseguir implementar este exemplo tive de recorrer a variáveis globais, coisa que não se deve usar.
No seguimento da evolução do projecto surgiu um outro problema que foi ao apresentar a jogada, as coordenadas anteriores e a consequente jogada desaparecem do tabuleiro, e não sei como poderei contornar esta situação.
Aqui fica o código:
/************************************************ Nome: Nuno Santos Data: 02-04-2012 Projecto: Jogo do Galo_1.03 ************************************************/ #include <stdio.h> #include <stdlib.h> #define DIM 3 int x, y; int n_jogadas; void posicoes() { // Acção Jogador - Coordenadas printf("\nDigite as coordenadas do X: "); scanf("%d", &x); fflush(stdin); printf("\nDigite as coordenadas do Y: "); scanf("%d", &y); fflush(stdin); x--; y--; } int main() { char Galo [DIM][DIM] = {{' ', ' ', ' '}, {' ', ' ', ' '}, {' ', ' ', ' '}}; int i, j, n; // Inicia a Matriz while(n_jogadas < DIM*DIM) { for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) { Galo[i][j] = ' '; } } posicoes(x, y); if(Galo[x][y] != ' ') { printf("\nPosicao invalida, tente novamente.\n"); } else { Galo[x][y] = 'X'; } // Apresenta a Matriz printf("\n"); for(n = 0; n < 3; n++) { printf(" %c | %c | %c ", Galo[n][0], Galo[n][1], Galo[n][2]); if(n != 2) { printf("\n---|---|---\n"); } } n_jogadas++; printf("\n"); } system("PAUSE"); }
Se fosse possível gostaria que me fossem dadas algumas dicas de como resolver estes problemas, no entanto continuarei a pesquisar sobre o assunto.
Share