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

Jogo do Galo em C – Versão 1.01

Na tentativa de evoluir os meus conhecimentos na linguagem C, decidi tentar fazer o jogo do galo, tal como já referi aqui: Jogo do Galo em C .

Após numa primeira fase ter conseguido mostrar apenas o tabuleiro de jogo, consegui agora introduzir uma acção por parte de um jogador, e apresentar essa mesma jogada no tabuleiro.

Aqui fica o código que consegui:

#include <stdio.h>
#include <stdlib.h>

#define DIM 3

int main()
{
char Galo [DIM][DIM] = {{' ', ' ', ' '}, {' ', ' ', ' '}, {' ', ' ', ' '}};
int i, j, n;
int posx, posy;

// Inicia a Matriz

for(i = 0; i < 3; i++)
{
for(j = 0; j < 3; j++)
{
Galo[i][j] = ' ';
}
}

// Acção Jogador - Coordenadas

printf("\nDigite as coordenadas do X: ");
scanf("%d", &posx);

printf("\nDigite as coordenadas do Y: ");
scanf("%d", &posy);

posx--;
posy--;

if(Galo[posx][posy] != ' ')
{
printf("\nPosicao invalida, tente novamente.\n");
}
else
{
Galo[posx][posy] = '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");
}
}

printf("\n");

system("PAUSE");
}

Tenho a completa noção de que este é ainda um pequeno passo para a execução da totalidade do Jogo do Galo, e que possivelmente a forma como o implementei não é a mais indicada.
Caso tenham algum reparo a fazer ao código que criei ou uma qualquer dica, agradeço pois todas as criticas e dicas são úteis.

Share

Jogo do Galo em C

Como já é sabido pelos leitores mais assíduos do blog, eu estou a aprender a linguagem de programação C, e eu já me apercebi que se quero aprender verdadeiramente a programar quer seja em C ou numa outra qualquer linguagem de programação terei de ser auto-didacta e praticar muito.

Um dos exercícios mais comuns que recorrem ao uso de vectores é a implementação do Jogo do Galo. Apesar de haver centenas de exemplos já implementados na Internet eu quero desenvolver o meu próprio projecto, em pequenos passos.

Nesta primeira fase tive como objectivo de apresentar o tabuleiro de jogo. O código que criei para tal é o seguinte:

#include <stdio.h>
#include <stdlib.h>

#define DIM 3

int main()
{
    char Galo [DIM][DIM] = {{' ', ' ', ' '}, {' ', ' ', ' '}, {' ', ' ', ' '}};
    int i, j;

    for(i = 0; i < DIM; i++)
    {
        for(j = 0; j < DIM; j++)
        {
            if(j == DIM - 1)
            {
                printf("%c %c", Galo[i][j]);
            }
            else
            {
               printf("%c %c |", Galo[i][j]);
            }

        }

        if (i != DIM - 1)
        {

            printf("\n--------\n");
        }

    }

}

Tenho a completa noção de que este é ainda um pequeno passo para a execução da totalidade do Jogo do Galo, e que possivelmente a forma como o implementei não é a mais indicada.
Caso tenham algum reparo a fazer ao código que criei ou uma qualquer dica, agradeço pois todas as criticas e dicas são úteis.

Share