Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created January 3, 2022 18:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/58b1c36679c532707c2abdaf26b09257 to your computer and use it in GitHub Desktop.
Save parzibyte/58b1c36679c532707c2abdaf26b09257 to your computer and use it in GitHub Desktop.
void jugar(string nick)
{
ConfiguracionTablero configuracion = obtener_configuracion_tablero(nick);
vector<vector<char> > tablero = inicializarTablero(configuracion);
int jugadorActual = JUGADOR_HUMANO;
int columna;
int conteo_movimientos = 0;
vector<Movimiento> movimientos;
Movimiento movimiento;
while (true)
{
imprimir_tablero(tablero);
if (jugadorActual == JUGADOR_HUMANO)
{
cout << nick << ", elige: " << endl;
columna = solicitar_columna(tablero);
cout << nick << " elige la columna " << columna << endl;
conteo_movimientos++;
}
else
{
cout << "CPU, elige:" << endl;
columna = elegir_mejor_columna(jugadorActual, tablero);
}
tablero = colocar_pieza(columna, tablero, jugadorActual);
movimiento.columna = columna;
movimiento.jugador = jugadorActual;
movimientos.push_back(movimiento);
if (jugador_gana(jugadorActual, tablero))
{
imprimir_tablero(tablero);
anunciar_victoria(jugadorActual, nick);
if (jugadorActual == JUGADOR_HUMANO)
{
guardarPartidaTerminada(nick, RESULTADO_GANA, conteo_movimientos);
}
else
{
guardarPartidaTerminada(nick, RESULTADO_PIERDE, conteo_movimientos);
}
break;
}
else if (esEmpate(tablero))
{
imprimir_tablero(tablero);
anunciar_empate();
if (jugadorActual == JUGADOR_HUMANO)
{
guardarPartidaTerminada(nick, RESULTADO_EMPATE, conteo_movimientos);
}
break;
}
jugadorActual = obtener_oponente(jugadorActual);
}
guardar_movimientos_de_partida(nick, movimientos);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment