Jump to content
  • 0
VitinhoBBK

Jogo da velha/Erro Ao Executar !

Question

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;
}

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

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 xande013
      /* Desenvolver um programa para realizar a correção de um prova de múltipla escolha. Os dados iniciais a serem lidos são: - A quantidade de candidatos (N) e - A quantidade de questões aplicadas (M). As respostas possíveis que poderão ser aceitas são: A, B, C, D e E. O primeiro conjunto de dados a ser lido será o gabarito com as respostas corretas das M questões. Após o gabarito, serão lidos os nomes as respostas de cada candidato. Os valores das questões são iguais. A nota máxima é 10 e a de classificação é 5. As estruturas que deverão ser utilizadas são: O programa deverá: a) Gerar o vetor NOTA; b) Apresentar o relatório geral contendo o nome do candidato e sua nota; c) Calcular e apresentar a média geral dos candidatos; d) Apresentar a quantidade e o percentual de classificados e desclassificados; e) Apresentar o relatório de candidatos classificados; f) Apresentar a melhor nota obtida e seu(s) respectivo(s) candidato(s); g) Gerar o vetor ACERTOS com o percentual correspondente e apresentá-lo. */ #include <iostream> using namespace std; // torna desnecessária o uso do comando standard (std) antes das variáveis main() { setlocale(LC_ALL,"Portuguese"); int M[2][2],l, c, nota=0, soma=0, media=0, i=0, j=0; string nome[j]; cout<<"Digite seu nome"<<endl; cin>>nome[j]; for(l=0;l<2;l++) { for (c=0;c<2;c++) { cout<<"["<<l<<"]["<<c<<"] : "; cin>>M[l][c]; } } for (l=0;l<2;l++) { for (c=0;c<2;c++) { cout<<M[l][c]<<" "; } cout<<endl; } cout<<"Matriz A "<<" Vetor B "<<endl; for (l=0;l<2;l++) { soma=0; for (c=0;c<2;c++) { cout<<M[l][c]<<" | "; soma=soma+M[l][c]; media=soma/3; } cout<<" = "<<media<<endl; } cout<<"Somatório da colunas: "<<endl; for (c=0;c<2;c++) { soma=0; for (l=0;l<2;l++) { soma=soma+M[l][c]; } cout<<soma<<endl; } cout<<"Somatório da Diagonal: "<<endl; for (l=0;l<2;l++) { soma=0; for (l=0;l<2;l++) { soma=soma+M[l][l]; } cout<<soma<<endl; } } A pergunta é, como imprimir os nomes na coluna 0 e linhas de 1 a 5
      e como fazer para que as respostas possíveis que poderão ser aceitas sejam: A, B, C, D e E?
    • By gabriellbvbr
      Olá, estou em dúvida em qual Frameworks/Linguagens devo utilizar para desenvolver uma aplicação web flexível , seria um formulário que se adapta em tempo real conforme a opção selecionada, passando por verificação de campos e validação dos dados?
    • By gramosiri2
      Exercicio Caixa eletrônico com Notas.
       
      Ola, estou tentando fazer um ex. aqui de um caixa eletrônico, onde precisa ser feito o saque apenas com as determinadas notas: 2, 5, 10, 20, 50 e 100 reais. Porém quando tento sacar 11 por exemplo ele soma uma nota de 10 apenas, acho que vai ter que tirar o mod, alguma ideia??
       
      #include <stdio.h> #include <stdlib.h> int main() { int n100=0,n50=0,n20=0,n10=0,nota5=0,nota2=0; float valor=0; int op; printf("-> Quanto deseja sacar? R$"); scanf("%f",&valor); while(valor>=100){ valor=valor-100; n100=n100+1; } while(valor>=50){ valor=valor-50; n50=n50+1; } while(valor>=20){ valor=valor-20; n20=n20+1; } while(valor>=10){ valor=valor-10; n10=n10+1; } while(valor>=5){ valor=valor-5; nota5=nota5+1; } while(valor>=2){ valor=valor-2; nota2=nota2+1; } printf("SAQUE:\n"); printf("%d nota(s) de R$ 100.00\n",n100); printf("%d nota(s) de R$ 50.00\n",n50); printf("%d nota(s) de R$ 20.00\n",n20); printf("%d nota(s) de R$ 10.00\n",n10); printf("%d nota(s) de R$ 5.00\n",nota5); printf("%d nota(s) de R$ 2.00\n",nota2); return 0; }  
    • By LUWEI
      Não estou conseguindo entender esse programa em c , tem como  me ajudar?
      Escreva um programa que armazene 40 elementos reais em um vetor. Mostrar o vetor e informar quantos números existem em cada faixa:
      Faixa 1 -> 1 - 100
      Faixa 2 -> 200 - 450
      Faixa 3 -> 501 - 745.5
      Faixa 4 -> 800.5 - 920.9
×

Important Information

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