Programación General > Java
problema con una matriz arreglo bidimensional
(1/1)
reymersa:
el problema es el siguiente amigos tengo q hacer el juego del submarino en consola el juego se trata de algo así hay una matriz de 3x3 con pos enumeradas del 1-9 el juego por si solo elije una pos random donde ocultar el submarino.. y el usuario tiene 3 oportunidades para encontrarlo la cosa es no puedo acceder a llos valores de la matriz osea creo la matriz pero nose como cargar los números dentro de ella y al imprimir solo me imprime 0 o direcciones de memoria. podrian decirme q estoy haciendo mal estoy usando el netbeans 6.8 como compilador y soy principiante porfa ayuda dejo un ejemplo del code.
--- Código: Java --- package proyecto1; import java.io.*;import java.util.*; public class Main { public static void main(String[] args) throws IOException { InputStreamReader lector_entrada = new InputStreamReader(System.in); BufferedReader buf = new BufferedReader(lector_entrada); int Fi, Co; int Opc; int[][] mat; mat = new int[3][3];//---------------------------------Random Random rand = new Random(); int x = rand.nextInt(9);//--------------------------------------- System.out.println("El Submarino Esta en la Pos: " + x); for (Fi = 0; Fi < mat.length; Fi++) { for (Co = 0; Co < mat.length; Co++) { //aqui nose como cargar la matriz } } }}
shadow_rev:
Algoritmia básica, compañero B) ......
Primero, para rellenar o iniciar la matriz (perdón si me equivoco, esto lo hago a memoria):
--- Código: Java ---for(Fi=0; Fi < mat.length; Fi++) { for(Co=0; Co < mat[Fi].length; Co++) { mat[Fi][Co] = 0; }}
Segundo, para determinar una posición, ceil (x / 3), donde 1 <= x <= 9, te da la fila de una matriz (un número en el rango de 1 a 3), y x % 3 te da la columna de una matriz (un número en el rango de 0 a 2, por si no conoces la operación es el famoso módulo, que es el cálculo del residuo de una división); por ejemplo, si el valor aleatorio te da 5, ceil(5/3)=2, eso te indica que el número está en la fila 2 contando las filas del 1 al 3, y 5%3=2, que te indica la columna 2, contando como el caso anterior (en caso de que el módulo sea 0, esa sería en realidad la posición 3); a partir de lo anterior, deduces que la posición 5 equivale a matriz[2][2], que en la práctica es matriz[1][1]. Esta lógica la puedes aplicar en el momento en que ubiques al submarino o para que el jugador determine la posición del mismo.
:suerte:
Ricardo Magon:
Exelente esta muy bien :good:
--- Código: C# ---package proyecto1; import java.io.*;import java.util.*; public class Main { public static void main(String[] args) throws IOException { InputStreamReader lector_entrada = new InputStreamReader(System.in); BufferedReader buf = new BufferedReader(lector_entrada); int Fi, Co; int Opc; int[][] mat; mat = new int[3][3];//---------------------------------Random Random rand = new Random(); int x = rand.nextInt(9);//--------------------------------------- System.out.println("El Submarino Esta en la Pos: " + x); for (Fi = 0; Fi < mat.length; Fi++) { for (Co = 0; Co < mat[Fi].length; Co++) { mat[Fi][Co] = 0; } } }}
Saludos
Navegación
Ir a la versión completa