Ir ao conteúdo
  • Cadastre-se

C++ Jogo da velha em devc++ !!


Gabriel.D

Posts recomendados

estou tentando criar um jogo da velha em C++ mais esta com varios erros pfv me ajudem eu nao estou conseguindo fazer e nem resolver os erros...... se puderem me ajudar eu agradeço obrigado e boa noite para todos!!!!

 

___________________________________________________________________________________________________________________________________________________

 

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

using namespace std;

#define DIM 3

char matriz[DIM][DIM];
int i,j;
char p1,p2;
int ganhou=false;
int jogada=0, turno=1;
int certo=false, fim=false;
int v1=0, v2=0;

void escolha_jogador()
{
    while (certo == false)
    {
            cout << "Player 1 escolha 'X' ou 'O': \n\n";
            fflush(stdin);
            cin.get(p1);
            
            if ((p1=='X')||(p1=='x'))
            {
                p1 = 'X';
                p2 = 'O';
                certo=true;
            }

        else
        if ((p1 =='o')||(p1 == 'O'))    
        {
            p1 = 'O';
            p2 = 'X';
            certo = true;
        }
        else
        if ((p1 !='x' || p1 !='o') || (p2 !='X' || p2 !='o'))
        {
            cout << "voce digitou um valor invalido \n\n";
            certo = false;
        }
    }
    
    cout << "\n\nPlayer 1 escolheu " << p1;
    cout << "\n\nPlayer 2 escolheu " << p2;

}
    void elementos_mTRIX()
{
    for (i=0; i<DIM; i++)
        for (j=0; j<DIM; j++)
            matriz[j] = ' ';
}
void escrever_matriz2()
{
        color(9);
        
        cout << "\n\n\n\n";
        cout << "\n"<< "\t0  1    2\n\n\n";
        cout << "  0"<< "\t";
        
        textcolor(8);
        
        count << matriz[0][0] << " | " << matriz[0][1] " | " << matriz[0][2] << "\n" << " \t--|--|--\n";
        
        textcolor(9);
        
        count << "  1"<<" \t";
        
        textcolor(8);
        
        cout<< matriz[1][0] <<"  |  " << matriz [1][1] << " | "<< matriz[1][2]<< "\n" << "\t--|---|--\n";
        
        textcolor(9);
        
        cout << "   2" <<" \t";
        
        textcolor(8);
        
        cout<< matriz[2][0]<<" | " << matriz[2][1] <<" | " << matriz[2][2]<<"\n" <<end1;
        
        textcolor(7);
    }
    int jogando()
{
        certo=false;
        
        if (fim==false)
        {
            if (turno==1)
            {
                while (certo == false)
                {
                    cout << "\n\nEscolha a linha e coluna que deseja jogar(exemplo: 0 1): \n\n";
                    cout << "exemplo: 0 1 ";
                    cin >> i >>j;
                    if (matriz[j]==' ')
                    {
                    
                        matriz[j]=p1;
                        certo=true;
                        
                        
                        turno=2;
                        
                        escreve_matriz2();
                        
                    }
                else
                cout << "Jogada Invalida";
            }
    }
    else
    
    if (turno==2)
    {
    
        certo=false;
        while (certo == false)
        {
        
            cout << "\n\nEscolha a linha e coluna que deseja jogar ( exemplo: 0 1): \n\n";
            cin >> i >>j;
            if (matriz[j]==' ')
                {
                
                    matriz[j]=p2;
                    
                    certo=true;
                    turno=1;
                    
                    escreve_matriz2();
                    
            }
        else
        cout << "Jogada Invalida";
}
}
}
}

void verifica_ganhador()
{
   // verificaçao horizontal
   
   if((matriz[0][0]==matriz[0][1])&&(matriz[0][1]==matriz[0][2])&&(matriz[0][0]!=' '))
    {
        ganhou=true;
    }
    else
    
    if((matriz[1][0]==matriz[1][1])&&(matriz[1][1]==matriz[1][2])&&(matriz[1][0]!= ' '))
    {
        ganhou=true;
    }
    else
    
    if((matriz[2][0]==matriz[2][1])&&(matriz[2][1]==matriz[2][2])&&(matriz[2][0]!= ' '))
    {
        ganhou=true;
    }
            // teste vertical
            
    if((matriz[0][0]==matriz[1][0])&&(matriz[1][0]==matriz[2][0])&&(matriz[0][0]!= ' '))
    {
        ganhou=true        
    }
    else
    
        if((matriz[0][1]==matriz[1][1])&&(matriz[2][1]==matriz[2][2])&&(matriz[0][1]!= ' '))
    {
        ganhou=true;
    }
    else
    
        if((matriz[0][2]==matriz[1][2])&&(matriz[1][2]==matriz[2][2])&&(matriz[0][2]!= ' '))
    {
        ganhou=true;
    }
    
    
            // teste diagonal
    
        if((matriz[0][0]==matriz[1][1])&&(matriz[1][1]==matriz[2][2])&&(matriz[0][0]!= ' '))
    {
        ganhou=true;
    }
    else
    
        if((matriz[0][2]==matriz[1][1])&&(matriz[1][1]==matriz[2][0])&&(matriz[0][2]!= ' '))
    {
        ganhou=true;
    }
    else


            // teste velha
            
        if (jogada==9)
    {
    
        if(ganhou==false)
        {
            cout << "deu velha!!!\n\n";
            fim = true;

        }
    }

            // teste ganhador
            
        if (ganhou==true)
    {
        if(turno==1)
        {
        
        cout << "parabens o jogador 2 ganhou!!\n\n";
        v2++;
    }
    else
        if (turno==2)
        {
            cout<<"Parabens o jogador 1 ganhou!!\n\n";
            v1++;
        }

    }

void jogo()
{
    escolha_jogador();
    
    elementos_matriz();
    
    escrever_matriz1();
    jogado=0;
    while ((jogada<=9)&&(ganhou==false))
        {
        jogadas();
        jogada++;
        verifica_ganhador();
    }
}

int main ()
{
    jogo();
    
    char novo;
    while (novo!=' n ')
    {
    
        cout << "\nDeseja jogar novamente ' s ' ou ' n ' ? \n\n ";
        fflush(stdin);
        cin.get(novo);
        
        if (novo==' s ')
        {
            jogo();
        }
}
    textcolor(3);
    cout << "\n\t Pontuaçao: \n\n";
    textcolor(7);
    cout << " O jogador 1 obteve " << v1 << " vitorias\n\n";
    cout << " O jogador 2 obteve " << v2 << " vitorias\n\n";
    cout << "precione qualquer tecla para sair";
    
    cin.get();
}

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Gabriel.D    para que seja mais fácil o melhor é fazer aos pouco uma parte de cada vez, então faça uma função , por exemplo a função de mostrar o tabuleiro, e testa ela até ver que está funcionando bem e só então passe para outra função, e assim vai fazendo e testando ,  e para postar seu código é melhor usar o botão   <>   que está lá na barra de ferramentas da janela de responder, pois senão seu código fica faltando alguns caracteres como o   [ i ]   que desapareceu do seu código. 

então ajeitei seu código para ele compilar e ficou assim :

#include<iostream>
#include <string>
#include<stdlib.h>
#include<stdio.h>
#include <conio.h>
#include <windows.h>
using namespace std;

#define DIM 3

char matriz[DIM][DIM];
int i,j;
char p1,p2;
int ganhou=false;
int jogada=0, turno=1;
int certo=false, fim=false;
int v1=0, v2=0;

typedef enum{BLACK,BLUE,GREEN,CYAN,RED,MAGENTA,BROWN,LIGHTGRAY,DARKGRAY,
LIGHTBLUE,LIGHTGREEN,LIGHTCYAN,LIGHTRED,LIGHTMAGENTA,YELLOW,WHITE} COLORS;

static int __BACKGROUND = BLACK;
static int __FOREGROUND = LIGHTGRAY;

void textcolor (int color){/*para mudar a cor de fundo mude o background*/
    __FOREGROUND = color;
    SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
    color + (__BACKGROUND << 4));
}

void escolha_jogador()
{
    while (certo == false)
    {
            cout << "Player 1 escolha 'X' ou 'O': ";
            fflush(stdin);
            cin.get(p1);

            if ((p1=='X')||(p1=='x'))
            {
                p1 = 'X';
                p2 = 'O';
                certo=true;
            }

        else
        if ((p1 =='o')||(p1 == 'O'))
        {
            p1 = 'O';
            p2 = 'X';
            certo = true;
        }
        else
        if ((p1 !='x' || p1 !='o') || (p2 !='X' || p2 !='o'))
        {
            cout << "voce digitou um valor invalido "<<endl;
            certo = false;
        }
    }

    cout << "\nPlayer 1 escolheu " << p1<<endl;
    cout << "Player 2 escolheu " << p2<<endl;
    cout<<"\n      Tecle ";
    getch();
}
void elementos_mTRIX()
{
    for (i=0; i<DIM; i++)
        for (j=0; j<DIM; j++)
            matriz[i][j] = ' ';
}
void escrever_matriz2()
{
        textcolor(9);

        cout << "\n\n\n\n";
        cout << "\n"<< "\t0  1    2\n\n\n";
        cout << "  0"<< "\t";

        textcolor(8);

        cout << matriz[0][0] << " | " << matriz[0][1]<<" | " << matriz[0][2] << "\n" << " \t--|--|--\n";

        textcolor(9);

        cout << "  1"<<" \t";

        textcolor(8);

        cout<< matriz[1][0] <<"  |  " << matriz [1][1] << " | "<< matriz[1][2]<< "\n" << "\t--|---|--\n";

        textcolor(9);

        cout << "   2" <<" \t";

        textcolor(8);

        cout<< matriz[2][0]<<" | " << matriz[2][1] <<" | " << matriz[2][2]<<"\n" <<endl;

        textcolor(7);
    }
    int jogando()
{
        certo=false;

        if (fim==false)
        {
            if (turno==1)
            {
                while (certo == false)
                {
                    cout << "\n\nEscolha a linha e coluna que deseja jogar(exemplo: 0 1): \n\n";
                    cout << "exemplo: 0 1 ";
                    cin >> i >>j;
                    if (matriz[i][j]==' ')
                    {

                        matriz[i][j]=p1;
                        certo=true;


                        turno=2;

                        escrever_matriz2();

                    }
                else
                cout << "Jogada Invalida"<<endl;
            }
    }
    else

    if (turno==2)
    {

        certo=false;
        while (certo == false)
        {

            cout << "\n\nEscolha a linha e coluna que deseja jogar ( exemplo: 0 1): \n\n";
            cin >> i >>j;
            if (matriz[i][j]==' ')
                {

                    matriz[i][j]=p2;

                    certo=true;
                    turno=1;

                    escrever_matriz2();

            }
        else
        cout << "Jogada Invalida"<<endl;
}
}
}
}

void verifica_ganhador()
{
   // verificaçao horizontal

   if((matriz[0][0]==matriz[0][1])&&(matriz[0][1]==matriz[0][2])&&(matriz[0][0]!=' '))
    {
        ganhou=true;
    }
    else

    if((matriz[1][0]==matriz[1][1])&&(matriz[1][1]==matriz[1][2])&&(matriz[1][0]!= ' '))
    {
        ganhou=true;
    }
    else

    if((matriz[2][0]==matriz[2][1])&&(matriz[2][1]==matriz[2][2])&&(matriz[2][0]!= ' '))
    {
        ganhou=true;
    }
            // teste vertical

    if((matriz[0][0]==matriz[1][0])&&(matriz[1][0]==matriz[2][0])&&(matriz[0][0]!= ' '))
    {
        ganhou=true;
    }
    else

        if((matriz[0][1]==matriz[1][1])&&(matriz[2][1]==matriz[2][2])&&(matriz[0][1]!= ' '))
    {
        ganhou=true;
    }
    else

        if((matriz[0][2]==matriz[1][2])&&(matriz[1][2]==matriz[2][2])&&(matriz[0][2]!= ' '))
    {
        ganhou=true;
    }


            // teste diagonal

        if((matriz[0][0]==matriz[1][1])&&(matriz[1][1]==matriz[2][2])&&(matriz[0][0]!= ' '))
    {
        ganhou=true;
    }
    else

        if((matriz[0][2]==matriz[1][1])&&(matriz[1][1]==matriz[2][0])&&(matriz[0][2]!= ' '))
    {
        ganhou=true;
    }
    else


            // teste velha

        if (jogada==9)
    {

        if(ganhou==false)
        {
            cout << "deu velha!!!\n\n"<<endl;
            fim = true;

        }
    }

            // teste ganhador

        if (ganhou==true)
    {
        if(turno==1)
        {

        cout << "parabens o jogador 2 ganhou!!\n\n"<<endl;
        v2++;
    }
    else
        if (turno==2)
        {
            cout<<"Parabens o jogador 1 ganhou!!\n\n"<<endl;
            v1++;
        }

    }
}
void desenha_tabuleiro(){
    system("cls");
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            if(matriz[i][j]!=' '){
                cout<<" "<<matriz[i][j]<<" ";
                if(j<2)cout<<"|";
             }
        }
        if(i<2)cout<<endl<<"-----------"<<endl;
    }
    cout<<endl<<endl;
}

void jogo(){
    escolha_jogador();
    matriz[1][1]=p1;
    textcolor(10);
    desenha_tabuleiro();
    textcolor(15);
    /*elementos_matriz();*/

    /*escrever_matriz1();*/
    jogada=0;
    while ((jogada<=9)&&(ganhou==false))
        {
        /*jogadas();*/
        jogada++;
        verifica_ganhador();
    }
}
int main(){
    jogo();

    char novo='s';
    while (novo != 'n')
    {

        cout << "\nDeseja jogar novamente ' s ' ou ' n ' ? \n\n ";
        fflush(stdin);
        cin.get(novo);

        if (novo =='s')
        {
            jogo();
        }else
            cout<<"valor de novo = "<<novo;
}
    textcolor(14);
    cout << "\n\t Pontuaçao: \n\n";
    /*textcolor(7);*/
    cout << " O jogador 1 obteve " << v1 << " vitorias\n\n"<<endl;
    cout << " O jogador 2 obteve " << v2 << " vitorias\n\n"<<endl;
    cout << "precione qualquer tecla para sair"<<endl<<endl;
    getch();
    cin.clear();
    cin.get(novo);
    return 0;
}

 

  • Amei 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!