hack.eng
(usa Outra)
Enviado em 29/11/2008 - 01:55h
oi galera sou novo aki no forum, meu professor passou um jogo da velha para nos incrementar-mos
soh q estou com problemas nele, vo mandar aki o q eu tentei fazer
logo mais abaixo mando o original
o q temq ser feito:
jogo da velha em matriz; humano x humano; com todas as funções do jogo e como opação de saida ou retornar ao jogo no final
ESSE EH O Q EU TENTEI FAZER, IREI RESPONDER LOGO A BAIXO COM O Q O PROF MANDOU PARA NOS
#include <conio.h>
#include <conio.c>
#include <stdio.h>
#include <dos.h>
#include<stdlib.h>
char matriz[3][3];
char check(void)
{
int i;
for(i=0; i<3; i++) //verifica as linhas
if(matrix[i][0]==matrix[i][1] &&
matrix[i][0]==matrix[i][2]) return matrix[i][0];
for(i=0; i<3; i++) //verifica as colunas
if(matrix[0][i]==matrix[1][i] &&
matrix[0][i]==matrix[2][i]) return matrix[0][i];
for(i=0; i<3; i++) // verifica a diagonal
if(matrix[0][0]==matrix[1][1] &&
matrix[1][1]==matrix[2][2]) return matrix[0][0];
for(i=0; 1<3; i++)// verifica a diagonal
if(matrix[0][2]==matrix[1][1] &&
matrix[1][1]==matrix[2][0]) return matrix[0][2];
for(i=0; i<3; i++) // verifica se ha empate
if(matrix[0][0]!=' ' && matrix[0][1] !=' ' &&
matrix[0][2]!=' ' && matrix[1][0] !=' ' &&
matrix[1][1]!=' ' && matrix[1][2] !=' ' &&
matrix[2][0]!=' ' && matrix[2][1] !=' ' &&
matrix[2][2]!=' ') return 'v';
return ' ';
}
void init_matrix(void) //inicializa a matriz
{
int i, j;
for(i=0; i<3; i++)
for(j=0; j<3; j++) matrix[i][j]=' ';
}
void jogador1(void)
{
int x,y;
printf("Jogador 1 digite a linha e coluna para o 'x': ");
scanf("%d%d", &x, &y);
x--; y--;
if(matrix[x][y] !=' ')
{
printf("Posicao invalida, tente novamente. \n");
jogador1();
}
else matrix[x][y]='x';
}
void disp_matrix(void) {
printf(0, 0, "Jogo da Velha\nFeche a janela para encerrar\n");
printf(0, 3, "JOGADOR 1"); // coluna, linha, texto
printf(0, 4, "Linha...: ");
printf(0, 5, "Coluna..: ");
printf(0, 7, "JOGADOR 2");
printf(0, 8, "Linha...: ");
printf(0, 9, "Coluna..: ");
printf(30, 10, " 1 2 3 ");
printf(30, 11, " | | ");
printf(30, 12, "1 %c | %c | %c "),matriz[1][1],matriz[1][2],matriz[1][3]);
printf(30, 13, " | | ");
printf(30, 14, " -----+-----+-----");
printf(30, 15, " | | ");
printf(30, 16, "2 %c | %c | %c "),matriz[2][1],matriz[2][2],matriz[2][3]);
printf(30, 17, " | | ");
printf(30, 18, " -----+-----+-----");
printf(30, 19, " | | ");
printf(30, 20, "3 %c | %c | %c "),matriz[3][1],matriz[3][2],matriz[3][3]);
escrevexy(30, 21, " | | ");
}
void jogador2(void)
{
disp_matrix();
int x,y;
printf("Jogador 2 digite a linha e coluna para a 'o': ");
scanf("%d%d", &x, &y);
x--; y--;
if(matrix[x][y] !=' ')
{
printf("Posicao invalida, tente novamente. \n");
jogador2();
}
else matrix[x][y]='o';
}
int main (void)
{
char done;
done=' ';
init_matrix();
do
{
printf("Este e o jogo-da-velha.\n");
printf("Divirta-se com seu amigo\n");
disp_matrix();
jogador1();
done=check(); //verifica se ha vencedor
system("cls");
printf("Este e o jogo-da-velha.\n");
printf("Divirta-se com seu amigo\n");
if(done!=' ')break; //vencedor
jogador2();
done = check(); // verifica se ha vencedor
system("cls");
}while(done==' ');
if(done=='x')
{printf("Jogador 1 venceu!\n");
getch();}
else if(done=='o')
{printf("Jogador 2 venceu\n");
getch();}
else
{printf("Velha!");
getch();}
getch();
main();
}