Ejemplo Arrays Multidimensionales



  1 package bi;
  2 
  3 import java.util.Arrays;
  4 
  5 /**
  6  *
  7  * @author Wilson Lancheros Lopez
  8  */
  9 class Juego {
 10 
 11     private final String[][] tablero = new String[10][10];
 12     private final int[] JugadaActual = {-1, -1};
 13     private final int Level = 0;
 14     private String msg;
 15     private short disparos = 3;
 16     private int inpactos = 0;
 17     private int aux_inpactos = 0;
 18 
 19     public Juego() {
 20         Init();
 21     }
 22 
 23     private void Init() {
 24         for (int i = 0; i < tablero.length; i++) {
 25             Arrays.fill(tablero[i], ".");
 26         }
 27         Levels();
 28     }
 29 
 30     private void Levels() {
 31         switch (Level) {
 32             case 0:
 33                 tablero[1][3] = "H";
 34                 tablero[2][3] = "H";
 35                 tablero[3][3] = "H";
 36 
 37                 tablero[6][4] = "H";
 38                 tablero[7][3] = "H";
 39                 tablero[8][2] = "H";
 40                 tablero[9][1] = "H";
 41 
 42                 tablero[8][7] = "H";
 43                 tablero[8][8] = "H";
 44                 inpactos = 9;
 45                 break;
 46             case 1:
 47                 break;
 48             default:
 49         }
 50     }
 51 
 52     public boolean GameOver() {
 53         if(aux_inpactos == inpactos ){
 54             //Level();
 55             Init();
 56             aux_inpactos = 0;
 57         }
 58         boolean rt = (disparos > 0);
 59         if (!rt) {
 60             msg = "Fin del Juego";
 61         }
 62         return rt;
 63     }
 64 
 65     public String getView() {
 66         String sTablero = "--";
 67         for (int r = 0; r < tablero.length; r++) {
 68             sTablero += r + "-";
 69         }
 70         for (int s = 0; s < tablero.length; s++) {
 71             sTablero += "\n" + s + "|";
 72             for (String arg : tablero[s]) {
 73                 sTablero += arg + " ";
 74             }
 75         }
 76         return sTablero;
 77     }
 78 
 79     String getMensaje() {
 80         return msg;
 81     }
 82 
 83     public String Fuego(String jugada) {
 84         if (ValidaJugada(jugada)) {
 85             int x = JugadaActual[0];
 86             int y = JugadaActual[1];
 87             if (tablero[x][y].equals("H")) {
 88                 tablero[x][y] = "X";
 89                 aux_inpactos++;
 90             } else {
 91                 tablero[x][y] = "O";
 92                 disparos--;
 93             }
 94         }
 95         return "Disparos " + disparos + "\n" + msg;
 96     }
 97 
 98     private boolean ValidaJugada(String jugada) {
 99         try {
100             msg = "";
101             if (jugada.length() >= 3) {
102                 JugadaActual[0] = -1;
103                 JugadaActual[1] = -1;
104                 String[] arrayJugada = jugada.split(",");
105                 if (arrayJugada.length == 2) {
106                     JugadaActual[0] = Integer.parseInt(arrayJugada[0]);
107                     JugadaActual[1] = Integer.parseInt(arrayJugada[1]);
108                     if (JugadaActual[0] < tablero.length && JugadaActual[1] < tablero[0].length) {
109                         disparos++;
110                         return true;
111                     }
112                 }
113             }
114             msg = "Jugada Invalida";
115             disparos--;
116             return false;
117         } catch (Exception e) {
118             msg = "Jugada Invalida";
119             disparos--;
120             return false;
121         }
122     }
123 }
124 

 1 package bi;
 2 
 3 import java.util.Scanner;
 4 
 5 /**
 6  *
 7  * @author Wilson Lancheros Lopez
 8  */
 9 public class Bi {
10 
11     public static void main(String[] args) {
12         Juego j = new Juego();
13 
14         Scanner sc = new Scanner(System.in);
15         String jugada = "";
16         String mensaje;
17 
18         while (j.GameOver()) {
19             Paint(j.getView());
20             jugada = sc.next();
21             mensaje = j.Fuego(jugada);
22             Paint(mensaje);
23         }
24         Paint(j.getMensaje());
25     }
26 
27     private static void Paint(String view) {
28         System.out.println(view);
29     }
30 }
31