juego
Publicado por david (2 intervenciones) el 24/11/2010 04:14:30
void marcarPosibleMina()
{
int posibleMina_x, posibleMina_y;
std::cout << "Introduzca la posicion horizontal" << std::endl;
std::cin >> posibleMina_x;
fflush(stdin);
std::cout << "Introduzca la posicion vertical" << std::endl;
std::cin >> posibleMina_y;
fflush(stdin);
if (!juegoIniciado)
{
juegoIniciado = true;
inicioJuego = clock();
}
tableroJugador[posibleMina_x-1][posibleMina_y-1] = MARCADO_POSIBLE_MINA;
}
void limpiarPosicion()
{
int limpiar_x, limpiar_y;
std::cout << "Introduzca la posicion horizontal" << std::endl;
std::cin >> limpiar_x;
fflush(stdin);
std::cout << "Introduzca la posicion vertical" << std::endl;
std::cin >> limpiar_y;
fflush(stdin);
if (!juegoIniciado)
{
juegoIniciado = true;
inicioJuego = clock();
}
tableroJugador[limpiar_x-1][limpiar_y-1] = TAPADO;
}
void destaparPosicionDeterminada(int x, int y)
{
tableroJugador[x][y] = DESTAPADO;
if (tableroInterno[x][y] == 0)
{
if(x-1 >= 0 && y-1 >= 0)
if (tableroJugador[x-1][y-1] != DESTAPADO)
destaparPosicionDeterminada(x-1,y-1);
if(x-1 >= 0)
if (tableroJugador[x-1][y] != DESTAPADO)
destaparPosicionDeterminada(x-1,y);
if(x-1 >= 0 && y+1 < tamanoVertical)
if (tableroJugador[x-1][y+1] != DESTAPADO)
destaparPosicionDeterminada(x-1,y+1);
if(y-1 >= 0)
if (tableroJugador[x][y-1] != DESTAPADO)
destaparPosicionDeterminada(x,y-1);
if(y+1 < tamanoVertical)
if (tableroJugador[x-1][y+1] != DESTAPADO)
destaparPosicionDeterminada(x,y+1);
if(x+1 < tamanoHorizontal && y-1 >= 0)
if (tableroJugador[x+1][y-1] != DESTAPADO)
destaparPosicionDeterminada(x+1,y-1);
if(x+1 < tamanoHorizontal)
if (tableroJugador[x+1][y] != DESTAPADO)
destaparPosicionDeterminada(x+1,y);
if(x+1 < tamanoHorizontal && y+1 < tamanoVertical)
if (tableroJugador[x+1][y+1] != DESTAPADO)
destaparPosicionDeterminada(x+1,y+1);
}
}
void destaparPosicion()
{
int destapar_x, destapar_y;
std::cout << "Introduzca la posicion horizontal" << std::endl;
std::cin >> destapar_x;
fflush(stdin);
std::cout << "Introduzca la posicion vertical" << std::endl;
std::cin >> destapar_y;
fflush(stdin);
if (!juegoIniciado)
{
juegoIniciado = true;
inicioJuego = clock();
}
if(tableroInterno[destapar_x-1][destapar_y-1] == MINA)
{
juegoTerminado = true;
std::cout << "Juego terminado, ha perdido" << std::endl;
}
else
{
destaparPosicionDeterminada(destapar_x-1, destapar_y-1);
mostrarTableroJugador();
}
}
void mostrarMejoresPuntajes()
{
std::cout << "FACIL: ";
if (mejorTiempoFacil > 0)
std::cout << mejorTiempoFacil << ", por" << nombreMejorTiempoFacil << std::endl;
else
std::cout << " No Definido" << std::endl;
std::cout << "NORMAL: ";
if (mejorTiempoNormal > 0)
std::cout << mejorTiempoNormal << ", por" << nombreMejorTiempoNormal << std::endl;
else
std::cout << " No Definido" << std::endl;
std::cout << "EXPERTO: ";
if (mejorTiempoExperto > 0)
std::cout << mejorTiempoExperto << ", por" << nombreMejorTiempoExperto << std::endl;
else
std::cout << " No Definido" << std::endl;
}
void obtenerNuevoSeparador()
{
string nuevoSeparador;
std::cout << "Introduzca el nuevo separador" << std::endl;
getline (cin,nuevoSeparador);
fflush(stdin);
separador = nuevoSeparador[0];
}
};
int main() {
Juego Busca;
int x,y;
Busca.iniciarTableros();
Busca.iniciarJuego(20);
Busca.cambiarMejorResultado();
Busca.marcarMina();
Busca.marcarPosibleMina();
Busca.limpiarPosicion();
Busca.destaparPosicion();
Busca.mostrarMejoresPuntajes();
Busca.obtenerNuevoSeparador();
string entrada;
nivel = JUEGO_FACIL;
iniciarJuego(nivel);
mostrarTableroJugador();
do
{
if(juegoTerminado)
{
cout << nom << endl << endl;
cout << "Introduzca F para iniciar un nuevo juego en nivel Facil. "<< endl;
cout << "N para iniciar un nuevo juego en nivel Normal." << endl;
cout << "E para iniciar un nuevo juego en nivel Experto. "<< endl;
cout << "O para mostrar los mejores puntajes." << endl;
cout << "C para cambiar el separador del tablero. " << endl ;
cout << "S para salir" << endl << endl;
}
else
{
cout << nom << endl << endl;
cout << "Introduzca F para iniciar un nuevo juego en nivel Facil. "<< endl ;
cout << "N para iniciar un nuevo juego en nivel Normal." << endl ;
cout << "E para iniciar un nuevo juego en nivel Experto. "<< endl;
cout << "B para poner una bandera. "<< endl ;
cout << "P para marcar una posicion como posible mina." << endl;
cout << "L para limpiar una marca de posible mina. "<< endl;
cout << "D para descubrir una posicion," << endl;
cout << "O para mostrar los mejores puntajes." << endl;
cout << "C para cambiar el separador del tablero. "<< endl ;
cout << "S para salir" << endl << endl;
}
getline (cin,entrada);
fflush(stdin);
switch(entrada[0])
{
case 'B':
case 'b':
if(!juegoTerminado)
marcarMina();
else
cout << "Inicie un nuevo juego" << endl;
break;
case 'P':
case 'p':
if(!juegoTerminado)
{
marcarPosibleMina();
mostrarTableroJugador();
}
else
cout << "Inicie un nuevo juego" << endl;
break;
case 'L':
case 'l':
if(!juegoTerminado)
{
limpiarPosicion();
mostrarTableroJugador();
}
else
cout << "Inicie un nuevo juego" << endl;
break;
case 'D':
case 'd':
if(!juegoTerminado)
destaparPosicion();
else
cout << "Inicie un nuevo juego" << endl;
break;
case 'F':
case 'f':
nivel = JUEGO_FACIL;
iniciarJuego(JUEGO_FACIL);
mostrarTableroJugador();
break;
case 'N':
case 'n':
nivel = JUEGO_NORMAL;
iniciarJuego(JUEGO_NORMAL);
mostrarTableroJugador();
break;
case 'E':
case 'e':
nivel = JUEGO_EXPERTO;
iniciarJuego(JUEGO_EXPERTO);
mostrarTableroJugador();
break;
case 'O':
case 'o':
mostrarMejoresPuntajes();
if(!juegoTerminado)
mostrarTableroJugador();
break;
case 'C':
case 'c':
obtenerNuevoSeparador();
if(!juegoTerminado)
mostrarTableroJugador();
break;
case 'S':
case 's':
cout << "Gracias por jugar, hasta pronto" << endl;
return 0;
break;
default:
cout << "Ingrese una opcion valida" << endl << endl;
if(!juegoTerminado)
mostrarTableroJugador();
break;
}
system("pause");
}
while (entrada[0] != 'S' || entrada[0] != 's');
return 0;
}
// desde ya muchas gracias!!!!
{
int posibleMina_x, posibleMina_y;
std::cout << "Introduzca la posicion horizontal" << std::endl;
std::cin >> posibleMina_x;
fflush(stdin);
std::cout << "Introduzca la posicion vertical" << std::endl;
std::cin >> posibleMina_y;
fflush(stdin);
if (!juegoIniciado)
{
juegoIniciado = true;
inicioJuego = clock();
}
tableroJugador[posibleMina_x-1][posibleMina_y-1] = MARCADO_POSIBLE_MINA;
}
void limpiarPosicion()
{
int limpiar_x, limpiar_y;
std::cout << "Introduzca la posicion horizontal" << std::endl;
std::cin >> limpiar_x;
fflush(stdin);
std::cout << "Introduzca la posicion vertical" << std::endl;
std::cin >> limpiar_y;
fflush(stdin);
if (!juegoIniciado)
{
juegoIniciado = true;
inicioJuego = clock();
}
tableroJugador[limpiar_x-1][limpiar_y-1] = TAPADO;
}
void destaparPosicionDeterminada(int x, int y)
{
tableroJugador[x][y] = DESTAPADO;
if (tableroInterno[x][y] == 0)
{
if(x-1 >= 0 && y-1 >= 0)
if (tableroJugador[x-1][y-1] != DESTAPADO)
destaparPosicionDeterminada(x-1,y-1);
if(x-1 >= 0)
if (tableroJugador[x-1][y] != DESTAPADO)
destaparPosicionDeterminada(x-1,y);
if(x-1 >= 0 && y+1 < tamanoVertical)
if (tableroJugador[x-1][y+1] != DESTAPADO)
destaparPosicionDeterminada(x-1,y+1);
if(y-1 >= 0)
if (tableroJugador[x][y-1] != DESTAPADO)
destaparPosicionDeterminada(x,y-1);
if(y+1 < tamanoVertical)
if (tableroJugador[x-1][y+1] != DESTAPADO)
destaparPosicionDeterminada(x,y+1);
if(x+1 < tamanoHorizontal && y-1 >= 0)
if (tableroJugador[x+1][y-1] != DESTAPADO)
destaparPosicionDeterminada(x+1,y-1);
if(x+1 < tamanoHorizontal)
if (tableroJugador[x+1][y] != DESTAPADO)
destaparPosicionDeterminada(x+1,y);
if(x+1 < tamanoHorizontal && y+1 < tamanoVertical)
if (tableroJugador[x+1][y+1] != DESTAPADO)
destaparPosicionDeterminada(x+1,y+1);
}
}
void destaparPosicion()
{
int destapar_x, destapar_y;
std::cout << "Introduzca la posicion horizontal" << std::endl;
std::cin >> destapar_x;
fflush(stdin);
std::cout << "Introduzca la posicion vertical" << std::endl;
std::cin >> destapar_y;
fflush(stdin);
if (!juegoIniciado)
{
juegoIniciado = true;
inicioJuego = clock();
}
if(tableroInterno[destapar_x-1][destapar_y-1] == MINA)
{
juegoTerminado = true;
std::cout << "Juego terminado, ha perdido" << std::endl;
}
else
{
destaparPosicionDeterminada(destapar_x-1, destapar_y-1);
mostrarTableroJugador();
}
}
void mostrarMejoresPuntajes()
{
std::cout << "FACIL: ";
if (mejorTiempoFacil > 0)
std::cout << mejorTiempoFacil << ", por" << nombreMejorTiempoFacil << std::endl;
else
std::cout << " No Definido" << std::endl;
std::cout << "NORMAL: ";
if (mejorTiempoNormal > 0)
std::cout << mejorTiempoNormal << ", por" << nombreMejorTiempoNormal << std::endl;
else
std::cout << " No Definido" << std::endl;
std::cout << "EXPERTO: ";
if (mejorTiempoExperto > 0)
std::cout << mejorTiempoExperto << ", por" << nombreMejorTiempoExperto << std::endl;
else
std::cout << " No Definido" << std::endl;
}
void obtenerNuevoSeparador()
{
string nuevoSeparador;
std::cout << "Introduzca el nuevo separador" << std::endl;
getline (cin,nuevoSeparador);
fflush(stdin);
separador = nuevoSeparador[0];
}
};
int main() {
Juego Busca;
int x,y;
Busca.iniciarTableros();
Busca.iniciarJuego(20);
Busca.cambiarMejorResultado();
Busca.marcarMina();
Busca.marcarPosibleMina();
Busca.limpiarPosicion();
Busca.destaparPosicion();
Busca.mostrarMejoresPuntajes();
Busca.obtenerNuevoSeparador();
string entrada;
nivel = JUEGO_FACIL;
iniciarJuego(nivel);
mostrarTableroJugador();
do
{
if(juegoTerminado)
{
cout << nom << endl << endl;
cout << "Introduzca F para iniciar un nuevo juego en nivel Facil. "<< endl;
cout << "N para iniciar un nuevo juego en nivel Normal." << endl;
cout << "E para iniciar un nuevo juego en nivel Experto. "<< endl;
cout << "O para mostrar los mejores puntajes." << endl;
cout << "C para cambiar el separador del tablero. " << endl ;
cout << "S para salir" << endl << endl;
}
else
{
cout << nom << endl << endl;
cout << "Introduzca F para iniciar un nuevo juego en nivel Facil. "<< endl ;
cout << "N para iniciar un nuevo juego en nivel Normal." << endl ;
cout << "E para iniciar un nuevo juego en nivel Experto. "<< endl;
cout << "B para poner una bandera. "<< endl ;
cout << "P para marcar una posicion como posible mina." << endl;
cout << "L para limpiar una marca de posible mina. "<< endl;
cout << "D para descubrir una posicion," << endl;
cout << "O para mostrar los mejores puntajes." << endl;
cout << "C para cambiar el separador del tablero. "<< endl ;
cout << "S para salir" << endl << endl;
}
getline (cin,entrada);
fflush(stdin);
switch(entrada[0])
{
case 'B':
case 'b':
if(!juegoTerminado)
marcarMina();
else
cout << "Inicie un nuevo juego" << endl;
break;
case 'P':
case 'p':
if(!juegoTerminado)
{
marcarPosibleMina();
mostrarTableroJugador();
}
else
cout << "Inicie un nuevo juego" << endl;
break;
case 'L':
case 'l':
if(!juegoTerminado)
{
limpiarPosicion();
mostrarTableroJugador();
}
else
cout << "Inicie un nuevo juego" << endl;
break;
case 'D':
case 'd':
if(!juegoTerminado)
destaparPosicion();
else
cout << "Inicie un nuevo juego" << endl;
break;
case 'F':
case 'f':
nivel = JUEGO_FACIL;
iniciarJuego(JUEGO_FACIL);
mostrarTableroJugador();
break;
case 'N':
case 'n':
nivel = JUEGO_NORMAL;
iniciarJuego(JUEGO_NORMAL);
mostrarTableroJugador();
break;
case 'E':
case 'e':
nivel = JUEGO_EXPERTO;
iniciarJuego(JUEGO_EXPERTO);
mostrarTableroJugador();
break;
case 'O':
case 'o':
mostrarMejoresPuntajes();
if(!juegoTerminado)
mostrarTableroJugador();
break;
case 'C':
case 'c':
obtenerNuevoSeparador();
if(!juegoTerminado)
mostrarTableroJugador();
break;
case 'S':
case 's':
cout << "Gracias por jugar, hasta pronto" << endl;
return 0;
break;
default:
cout << "Ingrese una opcion valida" << endl << endl;
if(!juegoTerminado)
mostrarTableroJugador();
break;
}
system("pause");
}
while (entrada[0] != 'S' || entrada[0] != 's');
return 0;
}
// desde ya muchas gracias!!!!
Valora esta pregunta


0