Ir ao conteúdo
  • Cadastre-se

jogo da velha em C...alguém pode me ajudar????


danizinha1203

Posts recomendados

preciso q os 2 jogadores sejam o computador mesmo

pc contra pc....e q salve kd jogada em arquivo txt

segue ai o codigo q fiz até agora....poderiam me ajudar????

obrigadaaaaa

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

char matrix [3][3]={' ',' ',' ',' ',' ',' ',' ',' ',' '};

int x,y;

void zerar_matrix();

void jogada_Meu_Computador();

void jogada_Computador_oponente();

void jogada_do_usuario1();

void jogada_do_usuario2();

void display();

char testa_ganhador();

void jogada_Meu_Computador2();

void menu(char op);

int main()

{

int verOpt;

char op;

do

{

system ("cls");

printf("\t\t\t Menu \n\n");

printf("\t\t 1- Usuario Contra Usuario\n\t\t 2- Usuario contra Computador\n");

printf("\t\t 3- Computador contra Computador\n\t\t 4- Sair\n\n");

printf("\t\t Opcao: ");

op=getche();

if (op>='1'&& op<='4')

menu(op);

}while(1);

}

//inicio

void menu(char op)

{

float m;

int ma, me, s;

switch(op) // comando de decisão que recebe como parametro um valor int ou char

{

case '1': zerar_matrix();

char teste=' ';

int cont=1;

do

{

display();

jogada_do_usuario1();

teste=testa_ganhador();

if (teste == 'v'){

printf("Jogador 01 ganhou --> Parabens");

break;

}

display();

jogada_do_usuario2();

teste=testa_ganhador();

display();

if (teste == 'v'){

printf("Jogador 02 ganhou --> Parabens");

break;

}

cont++;

}while(cont<=4);

printf("\n");

system ("pause");

}

switch(op) // comando de decisão que recebe como parametro um valor int ou char

{

case '2': zerar_matrix();

char teste=' ';

int cont=1;

do

{

display();

jogada_do_usuario1();

teste=testa_ganhador();

if (teste == 'v'){

printf("Jogador 01 ganhou --> Parabens");

break;

}

display();

jogada_Meu_Computador();

teste=testa_ganhador();

if (teste == 'v'){

printf("Jogador 02 ganhou --> Parabens");

break;

}

display();

cont++;

}while(cont<=4);

printf("\n");

system ("pause");

}

switch(op) // comando de decisão que recebe como parametro um valor int ou char

{

case '3':

zerar_matrix();

char teste=' ';

int cont=1;

do

{

display();

jogada_Meu_Computador();

teste=testa_ganhador();

if (teste == 'v'){

printf("Jogador 01 ganhou --> Parabens");

break;

}

display();

jogada_Meu_Computador2();

teste=testa_ganhador();

if (teste == 'v'){

printf("Jogador 02 ganhou --> Parabens");

break;

}

display();

cont++;

}while(cont<=4);

printf("\n");

system ("pause");

}

switch(op) // comando de decisão que recebe como parametro um valor int ou char

{

case '4':

exit(0);

}

}

//fim

void zerar_matrix()

{

for(int i=0; i<3; i++)

for (int j=0; j<3; j++)

matrix[j]=' ';

}

void jogada_Meu_Computador()

{

for(int i=0; i<3; i++)

for (int j=0; j<3; j++)

if(matrix[j]==' ')

{

matrix[j]='X';

return;

}

}

void jogada_Meu_Computador2()

{

for(int i=0; i<3; i++)

for (int j=0; j<3; j++)

if(matrix[j]==' ')

{

matrix[j]='O';

return;

}

}

void jogada_do_usuario2()

{

int op;

while(1)

{

display();

printf("Em qual casa deseja jogar? ");

scanf("%d", &op);

switch(op)

{

case 1: x=0; y=0; break;

case 2: x=0; y=1; break;

case 3: x=0; y=2; break;

case 4: x=1; y=0; break;

case 5: x=1; y=1; break;

case 6: x=1; y=2; break;

case 7: x=2; y=0; break;

case 8: x=2; y=1; break;

case 9: x=2; y=2; break;

} // end switch

if(matrix[x][y]==' ')

{

matrix[x][y]='X';

return;

} // end if

}// end while

}

void jogada_do_usuario1()

{

int op;

while(1)

{

display();

printf("Em qual casa deseja jogar? ");

scanf("%d", &op);

switch(op)

{

case 1: x=0; y=0; break;

case 2: x=0; y=1; break;

case 3: x=0; y=2; break;

case 4: x=1; y=0; break;

case 5: x=1; y=1; break;

case 6: x=1; y=2; break;

case 7: x=2; y=0; break;

case 8: x=2; y=1; break;

case 9: x=2; y=2; break;

} // end switch

if(matrix[x][y]==' ')

{

matrix[x][y]='O';

return;

} // end if

}// end while

}

void display()

{

system("cls");

printf("\t\tJOGO DA VELHA\n\n\n");

printf("\t\t %c \xdb %c \xdb %c ",

matrix[0][0], matrix[0][1], matrix[0][2]);

printf("\n\t\t\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb");

printf("\n\t\t %c \xdb %c \xdb %c ",

matrix[1][0], matrix[1][1], matrix[1][2]);

printf("\n\t\t\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb");

printf("\n\t\t %c \xdb %c \xdb %c ",

matrix[2][0], matrix[2][1], matrix[2][2]);

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

printf("\t\t 1 \xdb 2 \xdb 3 ");

printf("\n\t\t\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb");

printf("\n\t\t 4 \xdb 5 \xdb 6 ");

printf("\n\t\t\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb");

printf("\n\t\t 7 \xdb 8 \xdb 9 ");

}

char testa_ganhador()

{

int i;

for(i=0; i<3; i++){

if(matrix[0]==matrix[1] &&

matrix[0]==matrix[2] && matrix[0] != ' '){

return 'v';

}

}

for(i=0; i<3; i++){

if(matrix[0]==matrix[1] &&

matrix[0]==matrix[2] && matrix[0] != ' '){

return 'v';

}

//} //Confere Diagonal está Funcionando de forma adequada!

if(matrix[0][0]== matrix[1][1] && matrix[1][1] != ' ' && matrix[0][0] != ' ' &&

matrix[1][1]==matrix[2][2] && matrix[2][2] != ' ' && matrix[1][1] != ' ' && matrix[0][0] != ' '){

//printf("Ganhou-> Na diagonal");

return 'v';

}

if(matrix[0][2]==matrix[1][1] &&

matrix[1][1]==matrix[2][0] && matrix[0][2] != ' ' && matrix[1][1] != ' ' && matrix[2][0] != ' ' ){

//printf("Ganhou-> Na diagonal");

return 'v';

}

}

}

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Para armazenar cada jogada...

você precisar usar "ARQUIVOS", ou seja o comando fopen e fclose para armazenar na devida pasta.. aqui vai um exemplo..lembrando q sempre vai ser salvo na pasta MATRIZ do arquivo...

#include<stdio.h>

main(){

FILE *dados;// da biblioteca stdio;

char titulo[30];

int codigo;

float preco;

dados=fopen(".txt","w");//fopen abindo o arquivo para ser salvo.

printf("Digite o titulo, codigo e preco.\n");

scanf("%s %d %f",titulo,&codigo,&preco);//leitura dos dados

fprintf(dados,"%s %d %f",titulo,codigo,preco);//fprintf é o que vai ser salvo

fclose(dados);

getch();}

Bom agora se você quiser salvar o arquivo com o nome de uma variavel... é necessario usar STRCAT para concatenar as variaveis... Exe salvando com o nome da variavel TITULO..

#include<stdio.h>

main(){

FILE *dados;// da biblioteca stdio;

char titulo[30];

int codigo;

float preco;

printf("Digite o titulo, codigo e preco.\n");

scanf("%s %d %f",titulo,&codigo,&preco);//leitura dos dados

dados=fopen(strcat(titulo,".txt"),"w");//fopen abindo o arquivo para ser salvo.

fprintf(dados,"%s %d %f",titulo,codigo,preco);//fprintf é o que vai ser salvo

fclose(dados);

getch();}

by diogoooooo

...

acho q é isso...

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...