03/12/2012, 20:48
|
| | Fecha de Ingreso: diciembre-2012
Mensajes: 4
Antigüedad: 11 años, 11 meses Puntos: 0 | |
Respuesta: problemas con math.random [BUSCAMINAS] Cita: package buscaminas;
import Utiles.TecladoIn;
// @author AGUSTIN
public class Buscaminas {
public static void PonerMinas (int matriz[][]){
int fila;
int columna;
int j=0;
int min;
int fl = matriz.length;
int cl = matriz[0].length;
do{
System.out.println("¿Cuantas minas desea poner?");
min = TecladoIn.readLineInt();
if(min > fl * cl){
System.out.println("Usted ha ingresado mas minas que celdas"
+ " en el tablero, ingrese menos minas");
}
else{ }
}
while (min > fl * cl);
while (j < min) {
fila = (int) Math.random() *(fl-1);
columna = (int) Math.random() * (cl-1);
System.out.println(fila + " " + columna);
matriz [fila][columna] = 1000;
j++;
}
}
public static int MinIzq(int mat[][], int f, int c){
int min;
int b = mat[f][c - 1];
if (b == 1000){
min = 1;
}
else{
min = 0;
}
return min;
}
public static int MinDer(int mat[][], int f, int c){
int min;
int b = mat[f][c + 1];
if (b == 1000){
min = 1;
}
else{
min = 0;
}
return min;
}
public static int MinAb(int mat[][], int f, int c){
int min;
int b = mat[f + 1][c];
if (b == 1000){
min = 1;
}
else{
min = 0;
}
return min;
}
public static int MinArr(int mat[][], int f, int c){
int min;
int b = mat[f - 1][c];
if (b == 1000){
min = 1;
}
else{
min = 0;
}
return min;
}
public static int DSizq(int mat[][], int f, int c){
int min;
int b = mat[f - 1][c - 1];
if (b == 1000){
min = 1;
}
else{
min = 0;
}
return min;
}
public static int DSder(int mat[][], int f, int c){
int min;
int b = mat[f - 1][c + 1];
if (b == 1000){
min = 1;
}
else{
min = 0;
}
return min;
}
public static int DIizq(int mat[][], int f, int c){
int min;
int b = mat[f + 1][c - 1];
if (b == 1000){
min = 1;
}
else{
min = 0;
}
return min;
}
public static int DIder(int mat[][], int f, int c){
int min;
int b = mat[f + 1][c + 1];
if (b == 1000){
min = 1;
}
else{
min = 0;
}
return min;
}
public static void MostrarTablero (int[][] tablero){
for (int w=0; w < tablero.length; w++){
String tab = "";
for(int q=0; q < tablero[0].length; q++){
switch(tablero[w][q]) {
case 1000 : tab = tab + "[m] "; break;
case 2000: tab = tab + "[x] "; break;
case 0: tab = tab + "[ ]"; break;
default : tab = tab + "[" + tablero[w][q] + "] ";
break;
}
}
System.out.println(tab);
}
}
public static void main(String[] args) {
int filas;
int columnas;
int buscaminas[][];
System.out.println("Ingrese cantidad de filas que va a poseer"
+ " el tablero (4-10)");
filas = TecladoIn.readLineInt();
if (filas < 4 || filas > 10){
System.out.println("Datos fuera del rango permitido. "
+ "Filas por defecto");
filas = 4;
}
System.out.println("Ingrese cantidad de columnas que va a poseer"
+ " el tablero (4-10)");
columnas = TecladoIn.readLineInt();
if (columnas <4 || columnas > 10){
System.out.println("Datos fuera del rango permitido. "
+ "Columnas por defecto");
columnas = 4;
}
System.out.println("El tablero sera de " + filas + "x" + columnas);
buscaminas = new int[filas][columnas];
System.out.println("Ahora procederemos a cargar las minas: ");
PonerMinas(buscaminas);
for(int i=0; i < filas; i++){
for (int j=0; j < columnas; j++){
int b = 0;
int f = i;
int c = j;
if(j != 0){
b = b + MinIzq(buscaminas, f, c); }
else{}
if(j != buscaminas[0].length - 1){
b = b + MinDer(buscaminas, f, c); }
else{}
if(i != buscaminas.length - 1){
b = b + MinAb(buscaminas, f, c); }
else{}
if(i != 0){
b = b + MinArr(buscaminas, f, c); }
else{}
if(i != 0 && j != 0){
b = b + DSizq(buscaminas, f, c); }
else {}
if (i != 0 && j != buscaminas[0].length - 1){
b = b + DSder(buscaminas, f, c); }
else{}
if(i != buscaminas.length - 1 && j != 0) {
b = b + DIizq(buscaminas, f, c); }
else{}
if(i != buscaminas.length - 1 && j != buscaminas[0].length - 1) {
b = b + DIder(buscaminas, f, c); }
else {}
if(buscaminas [i][j] != 1000){
buscaminas[i][j] = b; }
else { }
}
}
System.out.println("////////////////////////////////////");
System.out.println("////////////////////////////////////");
System.out.println("//////////////TABLERO///////////////");
System.out.println("////////////////////////////////////");
System.out.println("////////////////////////////////////");
System.out.println("m = mina////////////////////////////");
System.out.println("////////////////////////////////////");
System.out.println("x = no hay minas lindantes//////////");
System.out.println("////////////////////////////////////");
System.out.println("El num que poseen las celdas es ////");
System.out.println("// la cantidad de minas lidiantes //");
System.out.println("////////////con ellas///////////////");
System.out.println("////////////////////////////////////");
System.out.println("////////////////////////////////////");
System.out.println("////////Ahora comenzaremos//////////");
System.out.println("///////////con el juego/////////////");
int[][] tablero;
tablero = new int [buscaminas.length][buscaminas[0].length];
for (int i=0; i < buscaminas.length; i++){
String lane = "";
for (int j=0; j < buscaminas[0].length; j++){
lane = lane + "[ ]";
}
System.out.println(lane);
}
int fi;
int col;
boolean game = true;
int fl = buscaminas.length;
int cl = buscaminas[0].length;
while (game == true){
System.out.println("Seleccione una celda");
do{
System.out.println("FILA: ");
fi = TecladoIn.readLineInt();
if (fi > fl){
System.out.println("Esa fila no pertenece al rango"
+ " establecido"); }
else { }
} while(fi > fl);
do{
System.out.println("COLUMNA: ");
col = TecladoIn.readLineInt();
if (col > cl){
System.out.println("Esa columna no pertenece al rango"
+ " establecido"); }
else { }
} while(col > cl);
int f = fi - 1;
int c = col - 1;
if(buscaminas[f][c] == 1000){
tablero[f][c] = buscaminas[f][c];
System.out.println("En esa celda habia una mina, "
+ "usted ha perdido");
game = false;
MostrarTablero(tablero); }
else if(buscaminas[f][c] == 0){
System.out.println("BIEN!");
System.out.println(buscaminas[f][c]);
tablero[f][c] = 2000;
MostrarTablero(tablero); }
else{
System.out.println ("BIEN!");
tablero[f][c] = buscaminas [f][c];
MostrarTablero (tablero);
}
}
}
} |