Как герметизировать в корпусе несколько переменных в единственном объекте (POO)?

Привет у меня есть класс, что я изменяю ее для того, чтобы он был работоспособнее. И я не могу продвинуться больше. У меня есть различные признаки для будок игры, но я хочу герметизировать в корпусе все их в объекте Tipo_Casilla у которого был числовая стоимость и Ваш копир.

Это настоящий код:

//CONSTANTES

private static final int TIPO_VACIA = 1;
private static final int TIPO_LIMITE = 2;
private static final int TIPO_ITEM = 3;
private static final String TIPO_VACIA_TEXTO = " ";
private static final String TIPO_LIMITE_TEXTO = "\"";
private static final String TIPO_ITEM_TEXTO = "·";
//ATRIBUTO DE LA CLASE
private int tipo;

public Casilla(int getTipo) {

    int lmte = TIPO_LIMITE;
    int item = TIPO_ITEM;
    int nada = TIPO_VACIA;
    }

    public int[][] creaCasillasTableroJuego() {

    int lmte = TIPO_LIMITE;
    int item = TIPO_ITEM;
    int nada = TIPO_VACIA;

int[][] casillas = new int[][]{
    {lmte, item, lmte, lmte, lmte, lmte, lmte, lmte, lmte, lmte, lmte, lmte, lmte, lmte, lmte, lmte},
    {lmte, item, item, item, nada, nada, nada, nada, nada, nada, nada, nada, nada, nada, item, lmte},
    {lmte, item, lmte, lmte, item, lmte, lmte, lmte, item, item, item, lmte, lmte, lmte, item, lmte},
    {lmte, item, item, item, item, item, nada, nada, nada, nada, nada, nada, nada, nada, nada, lmte},
    {lmte, item, lmte, lmte, item, lmte, item, lmte, lmte, lmte, lmte, lmte, item, lmte, item, lmte},
    {lmte, item, nada, nada, nada, lmte, nada, nada, nada, nada, nada, nada, nada, lmte, item, lmte},
    {lmte, lmte, lmte, lmte, item, lmte, lmte, lmte, item, lmte, item, lmte, lmte, lmte, item, lmte},
    {lmte, lmte, lmte, lmte, item, lmte, item, item, item, item, item, item, item, lmte, item, lmte},
    {lmte, lmte, lmte, lmte, item, item, item, lmte, lmte, lmte, lmte, lmte, item, item, item, lmte},
    {lmte, lmte, lmte, lmte, item, lmte, nada, nada, nada, nada, nada, nada, nada, lmte, item, lmte},
    {lmte, lmte, lmte, lmte, item, lmte, lmte, lmte, item, lmte, item, lmte, lmte, lmte, item, lmte},
    {lmte, item, item, item, item, lmte, item, item, item, lmte, item, item, item, lmte, item, lmte},
    {lmte, item, lmte, lmte, item, lmte, item, lmte, lmte, lmte, lmte, lmte, item, lmte, item, lmte},
    {lmte, item, item, item, item, item, item, item, item, item, item, item, item, item, item, lmte},
    {lmte, item, lmte, lmte, item, lmte, lmte, lmte, item, lmte, item, lmte, lmte, lmte, item, lmte},
    {lmte, item, item, item, nada, nada, nada, nada, nada, lmte, nada, nada, nada, nada, nada, lmte},
    {lmte, lmte, lmte, lmte, lmte, lmte, lmte, lmte, lmte, lmte, lmte, lmte, lmte, lmte, lmte, lmte}
    };

    return casillas;
}


    public boolean laCasillanoEsLimite(int[][] casillas, int x, int y)      {

    if (Posiciones.esUnaCoordenadaCorrecta(casillas, x, y)) {
        return casillas[x][y] != TIPO_LIMITE;
    }

    return false;
}

public boolean NohayItem(int[][] casillas, int x, int y) {

    if (Posiciones.esUnaCoordenadaCorrecta(casillas, x, y)) {
        return casillas[x][y] == TIPO_ITEM;
    }

    return false;
}

public void vaciaCasilla(int[][] casillas, int x, int y) {

    if (Posiciones.esUnaCoordenadaCorrecta(casillas, x, y)) {
        casillas[x][y] = TIPO_VACIA;
    }
}

public String casillaATexto(int[][] casillas, int x, int y) {

    if (Posiciones.esUnaCoordenadaCorrecta(casillas, x, y)) {
        switch (casillas[x][y]) {
            case TIPO_VACIA:
                return TIPO_VACIA_TEXTO;
            case TIPO_LIMITE:
                return TIPO_LIMITE_TEXTO;
            case TIPO_ITEM:
                return TIPO_ITEM_TEXTO;
            default:
                return "";
        }
    }

    return null;
    }

//METODOS GET Y SET
public int getTipo() {
    return tipo;
}

public int setTipo() {
    return tipo;
}
}
0
задан 24.01.2017, 15:56
0 ответов

Самый удобный способ получать то, что ты хочешь, - с перечислением будок, с которыми они сформируют твою карту. Перечисления идут за пределами простого списка стоимости и у них может быть полностью функциональный код, в котором ты можешь помогать даже, если возможно помещать игрока на них, или если они включают какой-то другой метод, когда они занимаются, и т.д....

Смотри этот код, который является самым простым случаем:

public enum Tipo_Casilla {
    VACIA (1, " "),
    LIMITE (2, "\""),
    ITEM (3, ".");

    final int valor;
    final String representacion;

    protected int getValor() {
        return valor;
    }

    protected String getRepresentacion() {
        return representacion;
    }

    Tipo_Casilla (int valor, String representacion){
        this.valor = valor;
        this.representacion = representacion;
    }
}

С этим у тебя есть твои три типа будок и ты можешь соглашаться на два из Ваших главных признаков (стоимость int и копир String). Здесь он делает тебе список:

System.out.println("Lista de tipos de casillas disponibles:");
    for(Tipo_Casilla tc : Tipo_Casilla.values()){
        System.out.println(String.format("Casilla tipo %s con valor %d y representación '%s'", tc, tc.getValor(), tc.getRepresentacion()));
    }

У которого есть следующий вывод:

Список типов доступных будок:
Будка тип ОПУСТОШАЕТ со стоимостью 1 и представление ''
Будка тип ОГРАНИЧИЛА со стоимостью 2 и представление '"'
Будка тип СТАТЬЯ со стоимостью 3 и представление '.'

В этом случае твоя договоренность будок перешла бы к тому, чтобы быть договоренностью Tipo_Casilla[][], хотя я рекомендую тебе создавать класс Mapa чтобы управлять о будках и других данных больше (что он кроме того может инициализировать все будки как ты опустошаешь и край карты как предела и уже только концентрироваться на том, чтобы распределять стоимость статей и другие пределы)

3
ответ дан 03.12.2019, 17:31