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

