Visual C++ .NET - juego

 
Vista:

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!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:juego

Publicado por pepe (1 intervención) el 26/11/2010 14:17:10
Podrías indicar que error te marca?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro

Correcciones y sugerencias para juego de Buscaminas en C++

Publicado por Alejandro (265 intervenciones) el 09/02/2024 00:33:33
¡Hola David! Parece que tu código tiene algunos problemas de formato y errores de compilación. Intentaré proporcionarte algunas correcciones y sugerencias para que puedas avanzar con tu juego de buscaminas en C++.

1. Correcciones de sintaxis:
- Asegúrate de incluir la librería `#include <cstdlib>` al principio del archivo para utilizar la función `system("pause")`.
- Agrega un punto y coma después de la declaración de la función `minasAdyacentes`.

2. Declaración de la función `minasAdyacentes`:
1
int minasAdyacentes(int x, int y);

3. Implementación de la función `minasAdyacentes`:
1
2
3
int Juego::minasAdyacentes(int x, int y) {
    // Implementación de la función aquí
}

4. Correcciones en el código:
- Asegúrate de que las funciones estén correctamente declaradas dentro de la clase `Juego`.
- Añade `Juego::` antes de llamar a las funciones de la clase.
- Puedes corregir la declaración de la variable `nivel` moviéndola al principio de la función `main`.

Aquí tienes una parte corregida de tu código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Incluye las librerías necesarias
#include <iostream>
#include <math.h>
#include <time.h>
#include <string>
#include <cstdlib>
 
using namespace std;
 
// Constantes y declaración de la clase Juego
 
int Juego::minasAdyacentes(int x, int y) {
    // Implementación de la función aquí
}
 
// Resto del código...
 
int main() {
    Juego Busca;
    int x, y;
    int nivel = JUEGO_FACIL;  // Mueve la declaración al principio de la función
    Busca.iniciarTableros();
    Busca.iniciarJuego(20);
    Busca.cambiarMejorResultado();
    Busca.marcarMina();
    Busca.marcarPosibleMina();
    Busca.limpiarPosicion();
    Busca.destaparPosicion();
    Busca.mostrarMejoresPuntajes();
    Busca.obtenerNuevoSeparador();
    string entrada;
 
    // Resto del código...
 
    return 0;
}

Recuerda que esta es solo una parte del código corregido. Verifica el resto del código para asegurarte de que todas las funciones estén implementadas y llamadas correctamente. ¡Espero que esto te ayude a avanzar con tu juego de buscaminas en C++!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar