Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Jogo da Velha duvida

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    C / C++ Jogo da Velha duvida

    Ola boa tarde, tenho o seguinte código de jogo da velha:

    #include<stdio.h>
    #include<stdlib.h>
    #include<conio.h>
    char Matriz[3][3];
    int verificar(char O)
    {
    if ((Matriz[0][0]==O && Matriz[0][1]==O && Matriz[0][2]==O)||
    (Matriz[1][0]==O && Matriz[1][1]==O && Matriz[1][2]==O)||
    (Matriz[2][0]==O && Matriz[2][1]==O && Matriz[2][2]==O)||
    (Matriz[0][0]==O && Matriz[1][0]==O && Matriz[2][0]==O)||
    (Matriz[0][1]==O && Matriz[1][1]==O && Matriz[2][1]==O)||
    (Matriz[0][2]==O && Matriz[1][2]==O && Matriz[2][2]==O)||
    (Matriz[0][0]==O && Matriz[1][1]==O && Matriz[2][2]==O)||
    (Matriz[0][2]==O && Matriz[1][1]==O && Matriz[2][0]==O))
    return 1;
    return -1;
    }

    int main(void)
    {

    char O='O', X='X';
    int l=0,j,i;


    for(i=0;i<3;i++)
    for(j=0;j<3;j++)
    Matriz[i][j]=' ';//zera

    while(l<=9)//enquanto a matriz nao for completa
    {
    printf(" JOGO DA VELHA \n");
    // for(i=0;i<3;i++)
    // {
    // printf("\t\t %c \xBA %c \xBA %c\n",Matriz[i][0],Matriz[i][1],Matriz[i][2]);//tabela asc
    // if(i<3-1)
    // {
    // printf("\t\t ÍÍÍ\xCEÍÍÍ\xCEÍÍÍ\n");
    // }
    // }

    for(i=0;i<3;i++)
    {
    for(j=0;j<3;j++)
    //if(Matriz[i][j]==' ') printf("- \t");
    //else printf("%c \t",Matriz[i][j]);
    printf("%c \t",(Matriz[i][j]==' '? '-' : Matriz[i][j]));
    printf("\n");
    }


    printf("\nINSIRA AS COORDENADAS, ");
    if(l%2)printf("Jogador X\nLINHA: ");
    else printf("Jogador O\nLINHA: ");

    scanf("%d",&i);//le e armazena na variavel i, um numero inteiro %d
    printf("COLUNA: ");
    scanf("%d",&j);//armazena na variavel j

    if(Matriz[i-1][j-1]==' ')
    {
    if(l%2)Matriz[i-1][j-1]=X;
    else Matriz[i-1][j-1]=O;
    l++;
    }


    if(verificar(O)==1){
    printf("\n\a\t\tJogador O, VOCE VENCEU!!!");//faz o teste
    break;
    }
    if(verificar(X)==1)
    {
    printf("\n\n\n\n\a\t\tJogador X, VOCE VENCEU!!!");;//testa se o X venceu
    break;
    }

    if(l==9)//se for igual a 9(martriz completa) e nenhumas dos testes prevaleceu, entao empatado
    {
    printf("PARTIDA EMPATADA");//
    break;
    }

    }
    getch();//pausa, le o que e inserido pelo teclado, ex ENTER
    return(0);
    }

    *Preciso implementar a parte do código onde o computador joga contra o usuário usando rand, porém não sei como fazer e nem onde colocar no código. Agradeço a quem puder me responder, desde já obrigado.
    Similar Threads

  • Font Size
    #2
    Acho que está certo, dê uma verificada:

    Código:
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    char Matriz[3][3];
    
    void ImprimirMatriz() {
    	int i = 0, j = 0;
    	for(i=0;i<3;i++)
    	{
    		for(j=0;j<3;j++) {
    		printf("%c \t",(Matriz[i][j]==' '? '-' : Matriz[i][j]));
    	}
    	printf("\n");
    	}
    }
    
    int Aleatorio() {
    	srand((unsigned)time(NULL));
    	int a = ((int)(rand() % 3) + 1);
    	return a;
    }
    
    int verificar(char O)
    {
    if ((Matriz[0][0]==O && Matriz[0][1]==O && Matriz[0][2]==O)||
    (Matriz[1][0]==O && Matriz[1][1]==O && Matriz[1][2]==O)||
    (Matriz[2][0]==O && Matriz[2][1]==O && Matriz[2][2]==O)||
    (Matriz[0][0]==O && Matriz[1][0]==O && Matriz[2][0]==O)||
    (Matriz[0][1]==O && Matriz[1][1]==O && Matriz[2][1]==O)||
    (Matriz[0][2]==O && Matriz[1][2]==O && Matriz[2][2]==O)||
    (Matriz[0][0]==O && Matriz[1][1]==O && Matriz[2][2]==O)||
    (Matriz[0][2]==O && Matriz[1][1]==O && Matriz[2][0]==O))
    return 1;
    return -1;
    }
    
    int main(void)
    {
    
    char O='O', X='X';
    int l=0,j,i, Primeiro = 1;
    
    
    for(i=0;i<3;i++) { 
    	for(j=0;j<3;j++) {
    		Matriz[i][j]=' ';//zera
    	}
    }
    
    while(l<=9)//enquanto a matriz nao for completa
    {
    	if (Primeiro == 1) { printf(" JOGO DA VELHA \n"); Primeiro--; } 
    	
    	if (!(l%2)) {
    		ImprimirMatriz(); 		
    		printf("\nINSIRA AS COORDENADAS\n");
    		printf("Jogador O\nLINHA: ");
    		scanf("%d",&i);//le e armazena na variavel i, um numero inteiro %d
    		printf("COLUNA: ");
    		scanf("%d",&j);//armazena na variavel j
    	} else {
    		i = Aleatorio();
    		j = Aleatorio();
    	}
    if(Matriz[i-1][j-1]==' ')
    {
    	if(l%2) { Matriz[i-1][j-1] = X; }
    	else  { Matriz[i-1][j-1]= O; }
    	l++;
    }
    
    
    if(verificar(O)==1){
    	ImprimirMatriz();
    	printf("\n\a\t\tJogador O, VOCE VENCEU!!!\n");//faz o teste
    	break;
    }
    if(verificar(X)==1)
    {
    	ImprimirMatriz();
    	printf("\n\n\n\n\a\t\tJogador X, VOCE VENCEU!!!\n");;//testa se o X venceu
    	break;
    }
    
    if(l==9)//se for igual a 9(martriz completa) e nenhumas dos testes prevaleceu, entao empatado
    {
    	ImprimirMatriz();
    	printf("PARTIDA EMPATADA\n");//
    	break;
    }
    
    }
    //getch();//pausa, le o que e inserido pelo teclado, ex ENTER
    return(0);
    }
    Juro que eu tentei mexer o mínimo possível no seu código.

    Qualquer coisa é só dar um toque.
    Se expressarmos gratidão pelo que temos, teremos mais para expressar gratidão... Agradeça!

    Comment

    X
    Working...
    X