コード例 #1
0
  /** actualiza */
  @Override
  public void actualiza(Object obj) {
    if (obj instanceof Casilla) {
      Casilla casilla = (Casilla) obj;

      // si hay imagen en la casilla la quitamos y al revés
      if (tableroVista.getIconCasilla(casilla) == null)
        tableroVista.ponerIconoCasilla(
            casilla.getFil(), casilla.getCol(), recSwingApp.getIconoApp());
      else tableroVista.ponerIconoCasilla(casilla.getFil(), casilla.getCol(), null);

      // indicamos la casilla seleccionada en la línea de estado
      estadoTablero.setText(recSwingApp.getEtiqueta(ESTADO_TABLERO) + obj.toString());

      // desactivamos selección de nuevo jugador
      if (!listaJugadores.isSelectionEmpty()) listaJugadores.clearSelection();
      botonInvitar.setEnabled(false);
    }
  }
コード例 #2
0
  private boolean checkear(int posx, int posy, String direccion, int retraso) {
    int x1, x2, y1, y2;
    Casilla aux;

    if (direccion.equals("arriba")) {
      y1 = ((posy - retraso) + 10) / 52;
      x1 = (posx + 10) / 42;
      x2 = (posx + 31) / 42;
      y2 = (posy - retraso + 41) / 52;

      if (grafo.checkearParedes(x1, y1)
          || grafo.checkearParedes(x2, y2)
          || grafo.checkearParedes(x1, y2)
          || grafo.checkearParedes(x2, y1)) return false;

      aux = grafo.obtenerNodo(posx / 42, posy / 52);

      if (!(aux.equals(grafo.obtenerNodo((x1 + x2) / 2, (y1 + y2) / 2)))) {
        System.out.println("xxx");
        aux.eliminar(0);
      }

      grafo.ponerImagen((x1 + x2) / 2, (y1 + y2) / 2, 0);
    } else if (direccion.equals("abajo")) {
      y1 = (posy + retraso + 10) / 52;
      x1 = (posx + 10) / 42;
      x2 = (posx + 31) / 42;
      y2 = (posy + retraso + 41) / 52;

      if (grafo.checkearParedes(x1, y1)
          || grafo.checkearParedes(x2, y2)
          || grafo.checkearParedes(x1, y2)
          || grafo.checkearParedes(x2, y1)) {
        return false;
      }

      aux = grafo.obtenerNodo(posx / 42, posy / 52);

      if (!(aux.equals(grafo.obtenerNodo((x1 + x2) / 2, (y1 + y2) / 2)))) {
        aux.eliminar(0);
      }

      grafo.ponerImagen((x1 + x2) / 2, (y1 + y2) / 2, 0);
    } else if (direccion.equals("derecha")) {
      y1 = (posy + 10) / 52;
      x1 = (posx + retraso + 10) / 42;
      x2 = (posx + 31 + retraso) / 42;
      y2 = (posy + 41) / 52;

      if (grafo.checkearParedes(x1, y1)
          || grafo.checkearParedes(x2, y2)
          || grafo.checkearParedes(x1, y2)
          || grafo.checkearParedes(x2, y1)) {
        return false;
      }

      aux = grafo.obtenerNodo(posx / 42, posy / 52);

      if (!(aux.equals(grafo.obtenerNodo((x1 + x2) / 2, (y1 + y2) / 2)))) {
        aux.eliminar(0);
      }

      grafo.ponerImagen((x1 + x2) / 2, (y1 + y2) / 2, 0);
    } else if (direccion.equals("izquierda")) {
      y1 = (posy + 10) / 52;
      x1 = (posx - retraso + 10) / 42;
      x2 = (posx + 31 - retraso) / 42;
      y2 = (posy + 41) / 52;

      if (grafo.checkearParedes(x1, y1)
          || grafo.checkearParedes(x2, y2)
          || grafo.checkearParedes(x1, y2)
          || grafo.checkearParedes(x2, y1)) {
        return false;
      }

      aux = grafo.obtenerNodo(posx / 42, posy / 52);

      if (!(aux.equals(grafo.obtenerNodo((x1 + x2) / 2, (y1 + y2) / 2)))) {
        aux.eliminar(0);
      }

      grafo.ponerImagen((x1 + x2) / 2, (y1 + y2) / 2, 0);
    }

    return true;
  }