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

[0] Índice de Mensajes

Ir a la versión completa