Ir ao conteúdo
  • Cadastre-se

Jogo da velha c++


RomuloS

Posts recomendados

Dai galera ja arrumei os bugs brigado por me avisarem agora ta lançada a versão 2.0!

valeu!


#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <string>
#define l 3
#define c 3
using namespace std;
//JOGO DA VELHA
int main()
{
short i,j,lin,col,contl,d,contd=0,ct,contc,contd2;
char mt[l][c],op;
char nome1[20],nome2[20];
cout<<"General Public License\nJogo da velha v2.0\nProgramador:Romulo Sorato\nTestador:Romulo Sorato"<<endl;
cout<<"Legenda:\nJogador 1:X\nJogador 2:O"<<endl<<endl;

cout<<"Digite nome jogador 1"<<endl;
cin.getline(nome1,20,'\n');
cout<<"Digite nome jogador 2"<<endl;
cin.getline(nome2,20,'\n');

cout<<"Digite o numero da linha e coluna para cada posicao que voce deseja marcar:"<<endl<<endl;
do
{
//Prenchendo com a matriz com "?"
for(i=0; i<l; i++)
for(j=0; j<c; j++)
mt[i][j]='?';
//-----------

//mostrando a matriz
for(i=0; i<l; i++)
{
cout<<" ";
for(j=0; j<c; j++)
{
cout<<mt[i][j]<<" ";
}
cout<<endl;
}
//------------

cout<<endl;
do
{
do
{
//Pegando posição jogador 1
cout<<"Jogador :"<<nome1<<endl;
cin>>lin>>col;
//------------------

if(mt[lin][col]!='?')
{
cout<<"Posicao ja marcada.Digite outra posicao"<<endl;
}
else
{
mt[lin][col]='X';
break;
}
}
while(true);

system("CLS");

for(i=0; i<l; i++)
{
cout<<" ";
for(j=0; j<c; j++)
{
cout<<mt[i][j]<<" ";
}
cout<<endl;
}
cout<<endl;

//validação linha,diagonal,diagonal secundario e coluna do jogador 1 e se deu velha
ct=0;
contd=0;
contd2=0;
d=c-1;
for(i=0; i<l; i++)
{
contc=0;
contl=0;
if(mt[i][i]=='X')
contd++;
if(mt[i][d]=='X')
contd2++;
d--;
for(j=0; j<c; j++)
{
if(mt[i][j]!='?')
ct++;
if(mt[i][j]=='X')
contl++;
if(mt[j][i]=='X')
contc++;
}
if(contl==3||contd==3||contc==3||contd2==3)
{
cout<<"Player 1 wins!!"<<endl;
system ("PAUSE");
break;
}
}
if(contl==3||contd==3||contc==3||contd2==3)
break;
if(ct==l*c)
{
cout<<"Jogo da velha"<<endl;
break;
}

//

do
{
cout<<"Jogador 2:"<<nome2<<endl;
cin>>lin>>col;
if(mt[lin][col]!='?')
{
cout<<"Posicao ja marcada.Digite outra posicao"<<endl;
}
else
{
mt[lin][col]='O';
break;
}
}
while(true);
system("CLS");

for(i=0; i<l; i++)
{
cout<<" ";
for(j=0; j<c; j++)
{
cout<<mt[i][j]<<" ";
}
cout<<endl;
}
cout<<endl;
//validação linha,diagonal,diagonal secundario e coluna do jogador 2 e se deu velha
ct=0;
contd=0;
contd2=0;
d=c-1;
for(i=0; i<l; i++)
{
contc=0;
contl=0;
if(mt[i][i]=='O')
contd++;
if(mt[i][d]=='O')
contd2++;
d--;
for(j=0; j<c; j++)
{
if(mt[i][j]!='?')
ct++;
if(mt[i][j]=='O')
contl++;
if(mt[j][i]=='O')
contc++;
}
if(contl==3||contd==3||contc==3||contd2==3)
{
cout<<"Player 2 wins!!"<<endl;
system ("PAUSE");
break;
}
}
if(contl==3||contd==3||contc==3||contd2==3)
break;
if(ct==l*c)
{
cout<<"Jogo da velha"<<endl;
break;
}
}
while(true);
cout<<"Deseja continuar?(S ou s para continuar e qualquer outra para sair)"<<endl;
cin>>op;
tolower(op);
system("CLS");
}
while(op=='s');
return 0;
}


Link para o comentário
Compartilhar em outros sites

o que é bitboard?

BitBoard é o seguinte, sabemos que o int tem 16bit (C compilado X86-32) então para guardar informações de um jogo da velha, precisariamos apenas de 2 int, cada int guardaria informação de uma jogador.

Um cara fez um jogo da velha em C#

http://elemarjr.net/2011/12/10/tictactoe-jogo-da-velha-com-ai-minimax-em-c/

Link para o comentário
Compartilhar em outros sites

achei uns erros na digitação.

eu coloco 2 e 2

ele marca:

???

???

??X

tem algo errado ali ^^

e ele entra em loop eterno quando eu digito um lugar ja marcado

vou da uma olhada mas ele marca x na ultima posição é normal porque em c++ a linha e a coluna começa em zero e não sei faze diferente abç

Link para o comentário
Compartilhar em outros sites

vou da uma olhada mas ele marca x na ultima posição é normal porque em c++ a linha e a coluna começa em zero e não sei faze diferente abç

uma ideia, era voce dar um codigo para cada posição da tabela.

exemplo:

1 2 3

4 5 6

7 8 9

dai se foce a vez do X joga.

digite o lugar.. OK digitei 3

dai iria fica assim:

1 2 X

4 5 6

7 8 9

eo PC jogava e botava 5

1 2 X

4 O 6

7 8 9

acho um diferencial isso ^^

boa sorte

Link para o comentário
Compartilhar em outros sites

falta criar o algoritmo pra jogar contra o computador.

lembre-se, é possível fazer com que este nunca perca. no máximo, empate :)

cara me passsa esse algoritmo por favor!

uma ideia, era voce dar um codigo para cada posição da tabela.

exemplo:

1 2 3

4 5 6

7 8 9

dai se foce a vez do X joga.

digite o lugar.. OK digitei 3

dai iria fica assim:

1 2 X

4 5 6

7 8 9

eo PC jogava e botava 5

1 2 X

4 O 6

7 8 9

acho um diferencial isso ^^

boa sorte

vou te q faze nove ifs??

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!