Jump to content

Recommended Posts

Bom dia!

 

Estou desenvolvendo meu primeiro jogo da velha, e estou encontrando um problema quando aperto a tecla ENTER. O que acontece é que quando aperto ENTER, o programa o reconhece como um comando de caracter e retorna um valor para quando digitam um caracter diferente de X e O. Abaixo fotos:

Antes de apertar o ENTER:

image.png.16ff771699b249059c32a3d4c4041155.png

Após apertar o ENTER

image.png.bc5593fa801f5cea2950c7200289d027.png

 

CÓDIGO:

Citar

#include<stdio.h>
#include<string.h>


int main(){

    char matriz[3][3];
    int j,i;
    char modojogo[1];
    char j1[1],j2[1];
    int inicio=1;

        j1[0]='X';
        j2[0]='O';

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


    do{
            printf("\t\t\t\t JOGO DA VELHA\n");
            for(i=0;i<3;i++){
            for(j=0;j<3;j++){
                printf("\t\t%c\t",matriz[j]);
            }
                printf("\n");
            }
            printf("QUAL JOGADOR VOCE EH: J1(X) J2(O) : ");
    scanf("%c", &modojogo);
    if(modojogo[0]=='X'){

            printf("JOGADOR 1. DIGITE O LOCAL DA SUA ESCOLHA:\n[0][0]\t [0][1]\t [0][2]\n[1][0]\t [1][1]\t [1][2]\n[2][0]\t [2][1]\t [2][2]\n");
    scanf("%i", &i);
    scanf("%i", &j);
    matriz[j]='X';

    if(matriz[j]==matriz[0][0] && matriz[j]==matriz[0][1] && matriz[j]==matriz[0][2] || matriz[j]==matriz[0][0] &&
    matriz[j]==matriz[1][0] && matriz[j]==matriz[2][0] || matriz[j]==matriz[0][0]&&matriz[j]==matriz[1][1]&&
    matriz[j]==matriz[2][2]|| matriz[j]==matriz[1][0] && matriz[j]==matriz[1][1] && matriz[j]==matriz[1][2]||
    matriz[j]==matriz[2][0] && matriz[j]==matriz[2][1] && matriz[j]==matriz[2][2]||matriz[j]==matriz[0][1] &&
    matriz[j]==matriz[1][1] && matriz[j]==matriz[2][1] || matriz[j]==matriz[0][2] &&
    matriz[j]==matriz[1][2] && matriz[j]==matriz[2][2]){

    printf("VOCÊ GANHOU");

    inicio=0;
}
    }
else{
        if(modojogo[0]=='O'){

            printf("JOGADOR 2. DIGITE O LOCAL DA SUA ESCOLHA:\n[0][0]\t [0][1]\t [0][2]\n[1][0]\t [1][1]\t [1][2]\n[2][0]\t [2][1]\t [2][2]\n");
    scanf("%i", &i);
    scanf("%i", &j);
    matriz[j]='O';

    if(matriz[j]==matriz[0][0] && matriz[j]==matriz[0][1] && matriz[j]==matriz[0][2] || matriz[j]==matriz[0][0] &&
    matriz[j]==matriz[1][0] && matriz[j]==matriz[2][0] || matriz[j]==matriz[0][0]&&matriz[j]==matriz[1][1]&&
    matriz[j]==matriz[2][2]|| matriz[j]==matriz[1][0] && matriz[j]==matriz[1][1] && matriz[j]==matriz[1][2]||
    matriz[j]==matriz[2][0] && matriz[j]==matriz[2][1] && matriz[j]==matriz[2][2]||matriz[j]==matriz[0][1] &&
    matriz[j]==matriz[1][1] && matriz[j]==matriz[2][1] || matriz[j]==matriz[0][2] &&
    matriz[j]==matriz[1][2] && matriz[j]==matriz[2][2]){

    printf("VOCE GANHOU");

    inicio=0;
    }
}
else{
        printf("\n Escolha o jogador correto. JOGADOR 01 (X)                  JOGADOR 02 (O)\n");
    }
}
    }while(inicio==1);
}

 

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Nwband
      programar um determinado programa pf
       
      Preciso de um programa em C que seja capaz de ler uma frase com ate 100 caracteres e imprimi-la, conseguir identificar quantas letras maiusculas e minusculas tem na frase e escreve-la ao contrario
    • By Auface
      Pessoal estou iniciando na programaçaoem C e tenho este trabalho para fazer.
       
      Ajudem por favor , programação em C, e não tenho a minima ideia de como fazer, o enunciado é em inglês e está, neste link, é o exercício B(building a field).
      http://maratona.ime.usp.br/hist/2018/resultados18/contest_onesided.pdf
      Por enquanto eu fiz isso, mas não tenho certeza se começo assim.eu acho também que tenho que fazer este exercício a partir de um arquivo e lendo ele, mas também n sei como fazer.
       
      #include <stdio.h> int main() {     float x1,y1,x2,y2;     printf("Ponto 1: \n");     scanf("%f %f",&x1,&y1);     printf("Pont 2: \n");     scanf("%f %f",&x2,&y2);     printf("%.4f\n",(sqrt(pow(x2-x1,2)+pow(y2-y1,2))));     return 0; }
    • By eduardobraz
      Corrigir dois erros:
       
      entrada:
      10 4
      -93 -86 49 -62 -90 -63 40 72 11 67
       
      Saída
      NAO
      6
      5
      4
      2
      1
       
      Mais com esse está assim
      NAO
      1
      3
      4
      5
       
       
      #include <stdio.h>
      int main(){
          int n, k, i, j, cont, vetor[1000], aux, po;
          while (1){
              
              scanf("%d %d", &n, &k);
              
              if(n <= 1000 && n >= 0 && k <= 1000 && k >= 0){
                  
                  break;
                  
              }
          }
          for(i = 0; i < n; i++){
              
              scanf("%d", &vetor);
              
          }
          for(i = 0; i < n; i++){
          
              if(vetor <= 0){
                  cont++;
              }
          }
          if(cont >= k){
              printf("NAO\n");
              for(i=1; i<n; i++){
                  if (vetor <= 0){
                      aux = vetor;
                      po=i;                 
                      printf("%d\n", po);
                  }
              }
          }
          else{
              printf("SIM\n");
          }
      }
    • By soaresgusta
      Boa tarde, exercício pede a seguinte questão:

      Faça um programa que leia um valor x qualquer e calcule:
      Y = ( x+1)+(x+2)+(x+3)+(x+4)+(x+5)+...(x+100).

      Eu não estou conseguindo criar uma função Y na linguagem que some de 1 a 100.

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

      int main ()
      {
      int Y=0, x, i=1;

      for (i=1;i<=100;i++);
      {
      Y= (x+i);
      printf("Digite um numero inteiro qualquer: \n");
      scanf ("%d", x);

      printf("Y = %d \n", Y);
      i++;

      }
      return (0);
      }

      Pela lógica, i varia de 1 a 100, mas quando eu executo o programa ele não soma. Alguém pode me ajudar?
    • By Leonard123456789
      fazer um programa  que pede ao usuário que entre com os valores de 0 a 10. Não pode ser maior que 10 e nem menor que 0 é não pode ter números repetidos e nem iguais
       
      var v,cont,igual:inteiro inicio cont <- 0 enquanto (cont <= 5) faca escreva("Digite os valores de 0 a 5: ") leia(v) se (v >5) entao escreval("Número errado!") fimse cont <- cont + 1 fimenquanto fimalgoritmo  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.