Created
December 20, 2018 05:53
-
-
Save HiagoSouz/40dd9c84a6f7d2df691e899b53a99ae7 to your computer and use it in GitHub Desktop.
Problema 2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> //declaracao de biblioteca padrão do código, necessário para o funcionamento | |
#include <string> | |
using namespace std; //declaração padrão também | |
int main () | |
{ | |
int n=3,i,j,ContadorX=0,ContadorO=0,Erro=0,ContaX=0,ContaO=0,ContaP=0; | |
char jogo[n][n]; | |
cout << "Insira o jogo atual: (horizontalmente) " << endl; //Recebemos UM CARACTER POR VEZ AQUI, de forma horizontal | |
for (i=0;i<n;i++) | |
for (j=0;j<n;j++) | |
{ | |
cin>>jogo[i][j]; | |
if (jogo[i][j]=='X') | |
ContaX++; | |
if (jogo[i][j]=='O') | |
ContaO++; | |
if (jogo[i][j]=='.') | |
ContaP++; | |
if ((jogo[i][j]!='X')&&(jogo[i][j]!='O')&&(jogo[i][j]!='.')) //se um caracter invalido for inserido saberemos por esse if, que soma ao contador de erros | |
Erro++; | |
} | |
if ((jogo[0][0]=='X')&&(jogo[0][1]=='X')&&(jogo[0][2]=='X')) //HORIZONTALMENTE X | |
ContadorX++; | |
if ((jogo[1][0]=='X')&&(jogo[1][1]=='X')&&(jogo[1][2]=='X')) | |
ContadorX++; | |
if ((jogo[2][0]=='X')&&(jogo[2][1]=='X')&&(jogo[2][2]=='X')) | |
ContadorX++; | |
if ((jogo[0][0]=='X')&&(jogo[1][0]=='X')&&(jogo[2][0]=='X')) //VERTICALMENTE X | |
ContadorX++; | |
if ((jogo[0][1]=='X')&&(jogo[1][1]=='X')&&(jogo[2][1]=='X')) | |
ContadorX++; | |
if ((jogo[0][2]=='X')&&(jogo[1][2]=='X')&&(jogo[2][2]=='X')) | |
ContadorX++; | |
if ((jogo[0][0]=='O')&&(jogo[0][1]=='O')&&(jogo[0][2]=='O')) //HORIZONTALMENTE 0 | |
ContadorO++; | |
if ((jogo[1][0]=='O')&&(jogo[1][1]=='O')&&(jogo[1][2]=='O')) | |
ContadorO++; | |
if ((jogo[2][0]=='O')&&(jogo[2][1]=='O')&&(jogo[2][2]=='O')) | |
ContadorO++; | |
if ((jogo[0][0]=='O')&&(jogo[1][0]=='O')&&(jogo[2][0]=='O')) //VERTICALMENTE 0 | |
ContadorO++; | |
if ((jogo[0][1]=='O')&&(jogo[1][1]=='O')&&(jogo[2][1]=='O')) | |
ContadorO++; | |
if ((jogo[0][2]=='O')&&(jogo[1][2]=='O')&&(jogo[2][2]=='O')) | |
ContadorO++; | |
//Verificação dos resultados | |
if ((Erro!=0)||(ContadorO>2)||(ContadorX>2)) //caso o resultado seja invalido | |
cout << "invalido" << endl; | |
else | |
{ | |
if ((ContadorX>0)||(ContadorO>0)) //Para caso de vencedores | |
{ | |
if ((ContadorX==ContadorO)||(ContadorX>ContadorO)) | |
cout << "primeiro_venceu" << endl; | |
if (ContadorX<ContadorO) | |
cout << "segundo_venceu" << endl; | |
} | |
if ((ContadorX==0)&&(ContadorO==0)&&(ContaP==0)) //Caso haja empate | |
cout << "empate" << endl; | |
if ((ContadorX==0)&&(ContadorO==0)&&(ContaP!=0)) //Caso ainda haja espaços disponíveis para se jogar | |
{ | |
if (ContaX >= ContaO) | |
cout << "segundo" << endl; | |
if (ContaO > ContaX) | |
cout << "primeiro" << endl; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment