Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Gabriel.D

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

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado (editado)

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

 

Editado por devair1010
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado amigo você me ajudou muito!!!!!!!!!!

  • Curtir 1

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






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×