Documente Academic
Documente Profesional
Documente Cultură
BUSCAMINAS
Explicacin del juego
Nivel: Fcil
Nmero de minas: 3
Tamao de Matriz: 7x7
Nivel: Medio
Nmero de minas: 12
Tamao de Matriz: 12x12
Nivel: Difcil
Nmero de minas: 50
Tamao de Matriz: 15x15
Nivel: Profesional
Nmero de minas: 70
Tamao de Matriz: 20x20
Buscaminas en C
1
Se deber mostrar paso a paso el proceso del juego, es decir, se pedir la fila y
la columna y en esa posicin se analizar si existe o no una mina, cuantas
minas existen alrededor de la misma, etc.
Diseo e implementacin
En cuanto al diseo de este juego, se debe aclarar que al desarrollar bajo el
lenguaje C no se cuenta con las facilidades de implementar una interfaz grfica
de manera simple como en otros leguajes, aunque C si permite simular una
interfaz grfica de momento no se manejara esto, sino que simplemente se
utilizara una interfaz por consola. Esto para el ingreso de datos, mostrar
resultados, etc.
El programa bsicamente consta de 2 mens
Men Principal:
Men Secundario:
Buscaminas en C
1
Nivel: Fcil
Nmero de minas: 3
Tamao de Matriz: 7x7
Matriz Inicial
Buscaminas en C
1
Buscaminas en C
1
Buscaminas en C
1
Funciones importantes usadas.
La siguiente funcin es la que contiene a todas las dems. En esta funcin se
inicia el juego, a continuacin, se presenta nicamente cuando es el primer
nivel. Como se mencion los otros niveles tiene un proceso similar.
//-----------------------------------------------------------------------------//Funcin para empezar el juego
//-----------------------------------------------------------------------------void empezarBuscaminas(int nivel){
//Nivel: Fcil
//Nmero de minas: 3
//Tamao de Matriz: 7x7
if(nivel == 1){
int numeroFilasDeNivel=FILAS;
int numeroColumnasDeNivel=COLUMNAS;
numeroFilasDeNivel=7;
numeroColumnasDeNivel=7;
int numeroMinasParaNivel = 3;
int x,y;
estado = ESTADO_EN_JUEGO;
numeroDeJugadasBuscaminas = 0;
inicializarArregloPrincipal(numeroFilasDeNivel, numeroColumnasDeNivel);
agregaMinasEnMatrizPrincipal(numeroMinasParaNivel, numeroFilasDeNivel, numeroColumnasDeNivel);
determinarNumerosMinasCercanas(numeroFilasDeNivel, numeroColumnasDeNivel);
while( estado == ESTADO_EN_JUEGO){ //estado en juego
imprimirMatriz(nivel, numeroFilasDeNivel, numeroColumnasDeNivel);
cout << "Fila: ";
cin >> x;
cout << "Columna: ";
cin >> y;
jugadaEnGrupo(x, y, numeroFilasDeNivel, numeroColumnasDeNivel);
numeroDeJugadasBuscaminas = contarJugadas(numeroFilasDeNivel, numeroColumnasDeNivel);
if( numeroDeJugadasBuscaminas == ( numeroFilasDeNivel*numeroColumnasDeNivel numeroMinasParaNivel) ){
estado = ESTADO_GANADOR;
}
}
if( estado == ESTADO_PERDEDOR){
imprimirMatriz(nivel, numeroFilasDeNivel, numeroColumnasDeNivel);
cout << endl;
cout << "FIN DEL JUEGO!!!!" << endl;
cout << "PERDISTE!!!!" << endl;
cout << endl;
cout << "Matriz Solucion: " << endl;
imprimiResultados(nivel, numeroFilasDeNivel, numeroColumnasDeNivel);
}else{
cout << endl;
cout << "FIN DEL JUEGO!!!!" << endl;
cout << "GANASTE!!!!" << endl;
Buscaminas en C
1
}
}
//Posicin filas
int y;
//Posicin columnas
i = 1;
while( i <= numeroMinas){ //Generar posiciones aleatorias para minas
x = rand()%filasN1;
y = rand()%columnasN1;
matrizJuego[x][y] = BOMBA;
i++;
}
Buscaminas en C
1
Buscaminas en C
1
if( i >= 0 && i < filasN1 && j >= 0 && j < columnasN1 ){
if( matrizJuego[i][j] == 0 && !jugadas[i][j]){ //Existe mina en la posicin
jugadaEnGrupo(i,j, filasN1, columnasN1);
}else{
jugadas[i][j] = true;
}
}
}
}
}
}
}