Jogo da Velha//Erro ||| Me ajudem galera, porfavor !

Alguém da uma olhada por favor, me digam oque/porque está causando erro, quando o ponteiro para o vetor de casas do tipo int recebe ele…

Obs: Aceito sugestões para melhorar o código.
Obs: Acrescentem a biblioteca iostream, por algum motivo ela não está aparecendo quando posto… ignorem as bibliotecas a mais e desculpem qualquer coisa pois sou novo tanto na linguagem quanto no fórum.

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

                //JOGO DA VELHA

using namespace std;

bool x=false,o=false;
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 x=true;
}else if(vetor[0][c] && vetor[1][c] && vetor[2][c] == ‘X’){
jogadas=10;
return x=true;
}
c++;
}
return false;
}
bool verificaO(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 o=true;
}else if(*vetor[0][c] && *vetor[1][c] && *vetor[2][c] == ‘X’){
jogadas=10;
return o=true;
}
c++;
}
return false;
}

Cara se ainda precisar de ajuda manda a descrição do erro. Não tenho certeza absoluta mas como tabuleiro é uma matriz, acho que a função que verifica ele deveria receber como argumento um ponteiro para ponteiro, por exemplo: bool verifica( char **tabuleiro )

Uma alternativa bastante simples, que evitaria o uso de ponteiros, seria acessar diretamente a matriz, pois ela esta declarada no âmbito global.
Tenho um jogo da velha bem simples mas foi feito em C, está disponível aqui: jogo da velha (windows). Espero ter ajudado.

1 curtida