Tic Tac Toe Help!
Alright, I have made a Tic Tac Toe Game. The thing is, the computer doesn't corresponds well, with random number. And whenever someone wins a game, the program exits itself, without saying the cout's. Please
help me. T-T
# include <iostream>
# include <ctime>
# include <cstdlib>
using namespace std;
char TABLERO [3][3];
char SIMBOLO;
char COMPUTADORA;
int Movida;
int ContadorTur = 1;
int Ganador;
void setMovida(int Movida, char TIPO);
void inicializarTablero();
void seTranco();
int quienGano();
void jugadaDelaComputadora();
int cojeRANDOMS();
void jugadaDelUsuario();
void printTablero();
bool ESPACIO = true;
bool ESPACIOLIBRE = true;
bool espacioDeVerdadLibre(int EspacioNum);
int main(){
cout << " --------------------------------------" << endl;
cout << " *---Bienvenido al Mega Tic Tac Toe---*" << endl;
cout << " --------------------------------------" << endl;
int ORDEN;
inicializarTablero();
cout << "Favor de entrar el simbolo que desea ser, X o O? "<<endl;
cin >> SIMBOLO;
if (SIMBOLO == 'x' || SIMBOLO == 'X')
{
SIMBOLO = 'X';
COMPUTADORA ='O';
}
else if (SIMBOLO == 'o' || SIMBOLO == 'O')
{
SIMBOLO = 'O';
COMPUTADORA = 'X';
}
else
{
cout << "Bien" << endl;
}
cout << "\nPresiona 1 para ser numero 1 sino presiona 2: ";
cin >> ORDEN;
while (ORDEN !=1 && ORDEN !=2)
{
cout << "\n\nEso no es na, trata otra vez";
cout << "\nPresiona 1 para ser numero 1 sino presiona 2: ";
cin >> ORDEN;
}
cout << "Usuario: " << SIMBOLO << "\tTurno: " << ORDEN << "\nCompu: " << COMPUTADORA << "\tTurno: " << (3 - ORDEN);
printTablero();
if (ORDEN == 1)
{
while (ContadorTur < 10)
{
if ((ContadorTur % 2) == 0)
{
jugadaDelaComputadora();
quienGano();
}
else
{
jugadaDelUsuario();
quienGano();
}
}
}
else if(ORDEN == 2)
{
while (ContadorTur < 10)
{
if ((ContadorTur % 2) == 0)
{
jugadaDelUsuario();
quienGano();
}
else
{
jugadaDelaComputadora();
quienGano();
}
}
}
if (Ganador == 1)
{
cout << "Usuario Gano el juego, WEPA!" << endl;
}
else if (Ganador == 2)
{
cout << "La computadora gano, perdededor!!" << endl;
}
else if (Ganador == 0)
{
cout << "Empate!!" << endl;
}
else
{
cout << " Error" << endl;
}
return 0;
}
void inicializarTablero()
{
TABLERO[0][0] = '1';
TABLERO[0][1] = '2';
TABLERO[0][2] = '3';
TABLERO[1][0] = '4';
TABLERO[1][1] = '5';
TABLERO[1][2] = '6';
TABLERO[2][0] = '7';
TABLERO[2][1] = '8';
TABLERO[2][2] = '9';
}
void printTablero(){
cout << "\n\n\t" << TABLERO[0][0] << "|" << TABLERO[0][1] << "|" << TABLERO[0][2] << endl;
cout << "\t-+-+-" << endl;
cout << "\t" << TABLERO[1][0] << "|" << TABLERO[1][1] << "|" << TABLERO[1][2] << endl;
cout << "\t-+-+-" << endl;
cout << "\t" << TABLERO[2][0] << "|" << TABLERO[2][1] << "|" << TABLERO[2][2] << endl << "\n";
}
void jugadaDelUsuario()
{
ContadorTur++;
cout << "Sigue la leyenda, y entra a donde te quieres mover: ";
cin >> Movida;
ESPACIO = espacioDeVerdadLibre(Movida);
while (Movida != 1 && Movida != 2 && Movida != 3 && Movida != 4 && Movida != 5 && Movida != 6 && Movida != 7 && Movida != 8 && Movida != 9 && ESPACIOLIBRE == false)
{
cout << "\nNo se puede, intenta otra ves: ";
cin >> Movida;
}
setMovida (Movida, SIMBOLO);
Ganador = quienGano();
}
void setMovida (int Movida, char TIPO)
{
switch (Movida)
{
case 1:
TABLERO[0][0] = TIPO;
break;
case 2:
TABLERO[0][1] = TIPO;
break;
case 3:
TABLERO[0][2] = TIPO;
break;
case 4:
TABLERO[1][0] = TIPO;
break;
case 5:
TABLERO[1][1] = TIPO;
break;
case 6:
TABLERO[1][2] = TIPO;
break;
case 7:
TABLERO[2][0] = TIPO;
break;
case 8:
TABLERO[2][1] = TIPO;
break;
case 9:
TABLERO[2][2] = TIPO;
break;
}
}
void jugadaDelaComputadora()
{
int RANDOMSmovida = 1;
ContadorTur++;
while (ESPACIOLIBRE == false)
{
RANDOMSmovida = cojeRANDOMS();
ESPACIOLIBRE = espacioDeVerdadLibre(RANDOMSmovida);
}
setMovida(RANDOMSmovida, COMPUTADORA);
cout << "Movio la Computadora: ";
printTablero();
}
int cojeRANDOMS()
{
srand((unsigned)time(0));
int RANDOMS;
RANDOMS = (rand()%9)+1;
while (1)
{
if (RANDOMS < 1)
{
RANDOMS = (rand()%9)+1;
}
else if (RANDOMS > 9)
{
RANDOMS = (rand()%9)+1;
}
else
{
break;
}
}
return RANDOMS;
}
int quienGano ()
{
if(TABLERO [0][0] == SIMBOLO && TABLERO[0][1] == SIMBOLO && TABLERO[0][2] == SIMBOLO)
{
ContadorTur = 10;
return 1;
}
else if (TABLERO [1][0] == SIMBOLO && TABLERO[1][1] == SIMBOLO && TABLERO[1][2] == SIMBOLO)
{
ContadorTur = 10;
return 1;
}
else if (TABLERO [2][0] == SIMBOLO && TABLERO[2][1] == SIMBOLO && TABLERO[2][2] == SIMBOLO)
{
ContadorTur = 10;
return 1;
}
else if (TABLERO [0][0] == SIMBOLO && TABLERO[1][0] == SIMBOLO && TABLERO[2][0] == SIMBOLO)
{
ContadorTur = 10;
return 1;
}
else if (TABLERO [0][1] == SIMBOLO && TABLERO[1][1] == SIMBOLO && TABLERO[2][1] == SIMBOLO)
{
ContadorTur = 10;
return 1;
}
else if (TABLERO [0][2] == SIMBOLO && TABLERO[1][2] == SIMBOLO && TABLERO[2][2] == SIMBOLO)
{
ContadorTur = 10;
return 1;
}
else if (TABLERO [0][0] == SIMBOLO && TABLERO[1][1] == SIMBOLO && TABLERO[2][2] == SIMBOLO)
{
ContadorTur = 10;
return 1;
}
else if (TABLERO [2][0] == SIMBOLO && TABLERO[1][1] == SIMBOLO && TABLERO[0][2] == SIMBOLO)
{
ContadorTur = 10;
return 1;
}
else if (TABLERO [0][0] == COMPUTADORA && TABLERO[0][1] == COMPUTADORA && TABLERO[0][2] == COMPUTADORA)
{
ContadorTur = 10;
return 2;
}
else if (TABLERO [1][0] == COMPUTADORA && TABLERO[1][1] == COMPUTADORA && TABLERO[1][2] == COMPUTADORA)
{
ContadorTur = 10;
return 2;
}
else if (TABLERO [2][0] == COMPUTADORA && TABLERO[2][1] == COMPUTADORA && TABLERO[2][2] == COMPUTADORA)
{
ContadorTur = 10;
return 2;
}
else if (TABLERO [0][0] == COMPUTADORA && TABLERO[1][0] == COMPUTADORA && TABLERO[2][0] == COMPUTADORA)
{
ContadorTur = 10;
return 2;
}
else if (TABLERO [0][1] == COMPUTADORA && TABLERO[1][1] == COMPUTADORA && TABLERO[2][1] == COMPUTADORA)
{
ContadorTur = 10;
return 2;
}
else if (TABLERO [0][2] == COMPUTADORA && TABLERO[1][2] == COMPUTADORA && TABLERO[2][2] == COMPUTADORA)
{
ContadorTur = 10;
return 2;
}
else if (TABLERO [0][0] == COMPUTADORA && TABLERO[1][1] == COMPUTADORA && TABLERO[2][2] == COMPUTADORA)
{
ContadorTur = 10;
return 2;
}
else if (TABLERO [2][0] == COMPUTADORA && TABLERO[1][1] == COMPUTADORA && TABLERO[0][2] == COMPUTADORA)
{
ContadorTur = 10;
return 2;
}
else
return 0;
}
bool espacioDeVerdadLibre (int EspacioNum)
{
switch(EspacioNum)
{
case 1:
if (TABLERO[0][0] == '1')
return true;
else
return false;
case 2:
if (TABLERO[0][1] == '2')
return true;
else
return false;
case 3:
if (TABLERO[0][2] == '3')
return true;
else
return false;
case 4:
if (TABLERO[1][0] == '4')
return true;
else
return false;
case 5:
if (TABLERO[1][1] == '5')
return true;
else
return false;
case 6:
if (TABLERO[1][2] == '6')
return true;
else
return false;
case 7:
if (TABLERO[2][0] == '7')
return true;
else
return false;
case 8:
if (TABLERO[2][1] == '8')
return true;
else
return false;
case 9:
if (TABLERO[2][2] == '9')
return true;
else
return false;
default:
return false;
}
}
|