Ir para conteúdo
  • 0
VitinhoBBK

Jogo da velha/Erro Ao Executar !

Pergunta

Seguinte, estou tentando criar um jogo da velha mas e está causando um erro ao compilar, aparece um erro dizendo->|error: cannot convert 'char (*)[3]' to 'char*' for argument '1' to 'bool verificaX(char*)', alguem sabe como posso resolver ???! (Aparentemente não ta dando pra armazenar o endereço do vetor casas dentro do ponteiro das funções...

Obs: Aceito sugestões para melhorar meu código, grato.(Ignorem as bibliotecas inúteis)

 

 

#include <iostream>
#include <stdio.h> //Para função gets
#include <stdlib.h> //Para função malloc
#include <math.h>
#include <iomanip>

                    //JOGO DA VELHA

using namespace std;

int jogadas=0;

bool verificaX(char *vetor);
bool verificaO(char *vetor);

int main(){

    char casas[3][3]={' ',' ',' ',' ',' ',' ',' ',' ',' '};
    int l=0,c=0;

    while(jogadas<9){

         cout << "\t\t" << casas[0][0] << " | " << casas[0][1] << " | " << casas[0][2] << "\n";
         cout << "\t\t_________\n";
         cout << "\t\t" << casas[1][0] << " | " << casas[1][1] << " | " << casas[1][2] << "\n";
         cout << "\t\t_________\n";
         cout << "\t\t" << casas[2][0] << " | " << casas[2][1] << " | " << casas[2][2] << "\n\n\n";

        cout << "Digite uma linha: ";
        cin >> l;
        cout << "Digite uma coluna: ";
        cin >> c;

        while(l<=0 || c <=0 || l>3 || c>3){
            system("cls");
            cout << "Linha ou Coluna não existe!";
            cout << "Digite uma linha: ";
            cin >> l;
            cout << "Digite uma coluna: ";
            cin >> c;
        }
        system("cls");
        if(jogadas%2==0){
            casas[--l][--c]='X';
        }else{
            casas[--l][--c]='O';
        }
        jogadas++;

        verificaX(casas);
        verificaO(casas);

    }

        if(verificaX){
            cout << "Jogador X ganhou!";
        }else if(verificaO){
            cout << "Jogador O ganhou!";
        }else{
            cout << "Empate!";
        }
    return(0);
}

bool verificaX(char *vetor){
    int l,c;
    for(l=0;l<3;l++){
        if(vetor[l][0] && vetor[l][1] && vetor[l][2] == 'X'){
            jogadas=10;
            return true;
        }else if(vetor[0][c] && vetor[1][c] && vetor[2][c] == 'X'){
            jogadas=10;
            return true;
        }
        c++;
    }
    return 0;
}
bool verificaO(char *vetor){
    int l,c;
    for(l=0;l<3;l++){
        if(*vetor[l][0]=='X' && *vetor[l][1]=='X' && *vetor[l][2] == 'X'){
            jogadas=10;
            return o=true;
        }else if(*vetor[0][c]=='X' && *vetor[1][c]=='X' && *vetor[2][c] == 'X'){
            jogadas=10;
            return o=true;
        }
        c++;
    }
    return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 resposta a esta questão

Recommended Posts

  • 0

1- Em C ao se compara strings você tem que usar um função do C. Em C++ pode não ser diferente, se quiser pesquise sobre.

 

2- Você tá comparando com essas aspas ' ' e não estas " ",  essas que são para comparar strings.

if(*vetor[l][0]=='X' && *vetor[l][1]=='X' && *vetor[l][2] == 'X')

3- Nas linhas return:

return o=true;

Por que não retornar apenas true? Ao invés de fazer algo receber. Acho que não existe " o "  na sua função. Essa variável.

Flw.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por biza
      Ola
      Estou  a construir um datalogger em código C.Desta forma necessito passar os dados entre ficheiros. O meu problema está na inclusão de algumas variáveis no topo de um arquivo .txt onde os dados são salvos. Variáveis como tempo de data e hora, id do dispositivo e muito mais... Para isso preciso de ajuda, gostaria que os dados estivessem disponíveis para todos os arquivos, até aí é fácil, basta incluir a variável como extern, no arquivos *.h e incluí-lo em todos os outros que você deseja que a variável esteja disponível. mas como posso fazer para ter acesso a ele dentro do array que preciso?
      Exemplo: main.c
      #include "main.h" char dateTimeFormat[24]; void main(void){ dateTimeFormat = "22-02-22 13:23:04"; } main.h
      extern char dateTimeFormat[24];  
      teste.c
       
      #include "main.h" extern char dateTimeFormat[24]; /*Header .txt file initialization*/ volatile char headerFile[] ="\n\n" "# HEALT MONITORING SYSTEM \r\n" "# DEVELOPED: BIZA \r\n" "# VERSION: B \r\n" "# DATATIMECAPTURE:"+dateTimeFormat+ "\r\n" "# SAMPLINGFREQUENCY: 500 \r\n" "# SAMPLECHANNELS: 1 2 3 4 5 6 7 8 \r\n" "# SAMPLINGRESULUTION: 24 \r\n" "# IDDEVICE: HEALTHY \r\n" "# ENDOFHEADER  
      Como posso incluir a variável "dateTimeFormat" dentro do headerFile como descrevi acima?
       
    • Por Descomplica Consultoria
      Oi Pessoal, preciso de ajuda com um portfolio academico
    • Por Wilherme
      Boa tarde galera, preciso de uma ajuda,
       
      Tenho um gráfico no meu Power Bi porem apresenta o erro abaixo:
       

       
      já habilitei as funções porém ainda com erro.
       
       
      Obrigado.
    • Por 4Unknow
      Bom dia comunidade Imasters.

      Venho aqui tratar de um problema dúvida que estou tendo com um layout que estou tentando usar o formulário php dele.
      Quando clico em enviar ele me enviar para um arquivo .php  (assets/vendor/simple-forms/sendmail.php)

      Ele não envia o e-mail, acredito que deveria aparecer uma mensagem que o contato foi enviado corretamente.
      Vou deixar os arquivos aqui em anexo quem puder me ajudar nessa, ficaria muito grato.
       
      Link Website (wetransfer.com)
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.