#include <iostream>
#include<stdio.h>
#include<conio.h>
using namespace std;
void regras ()
{
cout<<"************************"<<endl;
cout<<"***** Jogo do Galo *****"<<endl;
cout<<"************************"<<endl;
cout<<endl;
cout<<endl;
cout<<"Para jogar carregue no numero correspondente"<<endl;
cout<<"à posição que quer marcar a sua opção."<<endl;
cout<<endl;
cout<<endl;
cout<<"O jogador 1 marca com X."<<endl;
cout<<"O jogador 2 marca com O."<<endl;
cout<<"\tBom jogo."<<endl;
cout<<endl;
cout<<endl;
}
class Cria_Matriz1
{
int n,m;
int **matrix;
public:
Cria_Matriz1(int parametro_n)
: n(parametro_n)
{
m=n;
matrix= new int*[n];
int c=1;
for (int i = 0; i<n; ++i)
{
for (int j=0; j<n; ++j)
{
matrix[i]= new int [m];
matrix[i][j]=c;
c++;
cout <<"["<<matrix[i][j]<<"]"<<" ";
}
cout << endl;
//cout << endl;
}
}
~Cria_Matriz1()
{
delete [] matrix;
}
};
class Cria_Matriz //comentar
{
int n,m;
char **matriz;
char jogador1;
char jogador2;
public:
Cria_Matriz(int parametro_n)
: n(parametro_n)
,jogador2('O')
,jogador1('X')
{
m=n;
matriz= new char*[n];
for (int i=0; i<n;++i)
{
matriz[i]= new char [m];
for (int j=0; j<m; ++j)
{
matriz[i][j]=' ';
//cout <<"["<<matriz[i][j]<<"]"<<" ";
}
cout<<endl;
}
}
~Cria_Matriz()
{
delete [] matriz;
}
void jogar (int a)//comentar
{
int d, b=0, k, z=0, count1=0, count2=0;
//int i=0;
//int j=0;
while (b==0)
{
if (z==2)
z=0;
d=1;
while (d!=0)
{
if(z==0)
{
cout <<"Jogador 1 escolha uma posição.\n"<<endl;
cin>>k;
count1++;
}
else
{
cout <<"Jogador 2 escolha uma posição.\n"<<endl;
cin>>k;
count2++;
}
/*if (k>'a'||k<'z' && k>'A'||k<'Z')
cout<<"Insira um numero."<<endl;
d=1;*/
if(k<=0 || k>(n*n))
{
cout<<"Aposta fora do tamanho da matriz."<<endl;
d=1;
}
else
{
if (matriz[(k-1)/a][(k-1)%a]=='X'||matriz[(k-1)/a][(k-1)%a]=='O')
{
cout<<"Posição já ocupada."<<endl;
d=1;
}
else
d=0;
}
//b=1;
}
if (z==0)
matriz[(k-1)/a][(k-1)%a]=jogador1;
else
matriz[(k-1)/a][(k-1)%a]=jogador2;
mostrar();
z++;
if(count1==n || count2==n)
vitoria ();
}
}
void mostrar()//Retorna a matriz com a opção escolhida pelos jogadores
{
for (int i =0; i < n; ++i)
{
for (int j= 0; j < n; ++j)
{
cout <<"["<<matriz[i][j]<<"]"<<" ";
}
cout<<endl;
}
}
bool win()
{
int j=0,count1=0,i,count2=0;
for (int i =0; i < n; ++i)
for (int j= 0; j < n; ++j)
{
if(matriz[i][j]==jogador1);
//j++;
}
return true;
}
bool draw()
{
return false;
}
};
int main ()
{
system ("chcp 1252");
int a;
regras();
cout<< "Insira o tamanho do tabuleiro, no minimo 3. Obrigado\n";
cin>>a;
Cria_Matriz1 matrix(a);
Cria_Matriz mat(a);
mat.jogar(a);
system ("PAUSE");
return 0;
}
bool vitoria()//Verifica se alguém ganhou a partida.
{
int count=0,i=0,j=0;
// ver se alguem fez a linha
for (int i = 0; i < n; ++i)
{
char c = matriz[i][0];
for (int j = 1; j < n; ++j)
{
if (c != ' ' && c == matriz[i][j])
count++;
}
if (count == n-1)
return true;
count = 0;
}
// ver se alguem fez a coluna
for (int i = 0, count = 0; i < n; ++i)
{
char c = matriz[0][i];
for (int j = 1; j < n; ++j)
{
if (c != ' ' && c == matriz[j][i])
count++;
}
if (count == n-1)
return true;
count = 0;
}
// ver se alguem fez a diagonal
char c = matriz[0][0];
for ( int i = 1, count = 0; i < n; ++i)
{
if (c != ' ' && c == matriz[i][i])
count++;
if (count == n-1)
return true;
}
c = matriz[0][n-1];
for (int i = 1, j = n-2, count = 0; i < n; ++i, --j)
{
if (c != ' ' && c == matriz[i][j])
count++;
if (count == n-1)
return true;
}
return false;
}
If you are experiencing a similar issue, please ask a related question
Title | # Comments | Views | Activity |
---|---|---|---|
why debugging a macro i s difficult | 10 | 34 | |
The line on IDE | 4 | 87 | |
Why is compiler in oracle server ? | 9 | 66 | |
What is sub-make ? | 2 | 61 |
Join the community of 500,000 technology professionals and ask your questions.