Uso de matrizes pra fazer jv em c

1. Uso de matrizes pra fazer jv em c

kaslane
kaslane

(usa Outra)

Enviado em 04/02/2010 - 14:54h

Olá pessoa olha eu aki denovo. Bem estou tentando fazer um jogo da velha em C, onde de início devo perguntar qual a modalidade do jogo. E o jogador poderá escolher entre: 1 - Homem vs Homem ou 2 - Homem vs computador. Nesse exercício pede para implementar o protótipo: int verifica(char matriz[3][3], char *vitoria) e também para usar a função abaixo:

void mostra(char matriz[3][3]) {

printf("\n");

printf(" %c | %c | %c \n", matriz[0][0], matriz[0][1], matriz[0][2]);

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

printf(" %c | %c | %c \n", matriz[1][0], matriz[1][1], matriz[1][2]);

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

printf(" %c | %c | %c \n", matriz[2][0], matriz[2][1], matriz[2][2]);

printf("\n");

}


Acho que pra fazer aquela estrutura típica do jogo. Bem, comecei matrizes agora,e sou uma semi-analfabeta em programação c to sentindo muita dificuldade nessa matéria, isso tudo é muito difícil pra uma Bióloga, mas se alguém poder me dá uma ajudinha, fico grata.

Kaslane Moraes



  


2. Re: Uso de matrizes pra fazer jv em c

Marcos Paulo Ferreira
Daemonio

(usa Slackware)

Enviado em 08/02/2010 - 01:02h

Uma vez eu fiz um jogo da velha no opengl, ficou legal e valeu pela experiência. =D

Bem, a sua função "verifica" terá que percorrer a sua matriz e procurar por uma vitória e dizer
quem ganhou. A verificação é fácil, é só testar se todas as colunas da linha 1 tem o mesmo valor,
o mesmo para as linhas 2 e 3. Depois, ver se os valores das linhas da coluna 1 são iguais, o mesmo
para as colunas 2 e 3. Agora só falta as diagonais principal e secundária.

O teste é feito na mão mesmo, usando uma tonelada de if's =D

Se você zerou a sua matriz antes do início do jogo então atenção nessa parte. Só há vitória
se todos os campos de uma linha/coluna/diagonal forem iguais e diferentes de zero. Entendeu pq?

// ganhou na linha 1
if ( matriz[0][0] == matriz[0][1] && matriz[0][0] == matriz[0][2] && matriz[0][0] != 0 ) { .. }
// ganhou na linha 2
if ( matriz[1][0] == matriz[1][1] && matriz[1][0] == matriz[1][2] && matriz[1][0] != 0 ) { .. }
etc ..

// ganhou na coluna 1
if ( matriz[0][0] == matriz[1][0] && matriz[0][0] == matriz[2][0] && matriz[0][0] != 0 ) { .. }
// ganhou na coluna 2
if ( matriz[0][1] == matriz[1][1] && matriz[0][1] == matriz[2][1] && matriz[0][1] != 0) { .. }

etc ..
// ganhou na diagonal principal
if ( matriz[0][0] == matriz[1][1] && matriz[0][0] == matriz[2][2] && matriz[0][0] != 0 ) { ..}
etc ..

Acho que isso possa te ajudar.
t+







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts