Объекты - Что я делаю не так?

1

Я пытаюсь создать массив объектов, Деревья (как лес) 12x12. Сначала все деревья. Пользователь вводит количество запусков огня и вероятность того, что пожары распространяются на один из окружающих объектов. Я работаю, когда я использую массив [] [], но при попытке заставить его работать с объектами, я не могу заставить объекты проверять окружающие объекты, а затем решает загореться или нет. Я новичок на сайте, поэтому я не уверен точно, что вам нужно увидеть.

public static void fireCheck(Tree[][] trees1){

    int i = 0;
    int c = 0;

    for(i = 0; i <= 11; i ++) {

        for(c = 0; c <= 11; c ++) {

            switch(trees1[i][c].getStatus()){

                case '^': break;
                case '.': break;
                case '*': trees1[i][c].burned(); break;
                default: break;
            }

            if(trees1[i][c].getStatus() == '^'){

                if(i <= 10){

                    switch(trees1[i + 1][c].getStatus()){

                            case '^': break;
                            case '.': break;
                            case '*': trees1[i+1][c].probability(); break;
                            default: break;
                    }

                    if(c <= 10){
                        switch(trees1[i][c + 1].getStatus()){

                            case '^': break;
                            case '.': break;
                            case '*': trees1[i][c+1].probability(); break;
                            default: break;
                        }

                        switch(trees1[i + 1][c + 1].getStatus()){

                            case '^': break;
                            case '.': break;
                            case '*': trees1[i+1][c+1].probability(); break;
                            default: break;
                        }


                    }
                }

                if(i >= 1){

                    switch(trees1[i - 1][c].getStatus()){

                            case '^': break;
                            case '.': break;
                            case '*': trees1[i-1][c].probability(); break;
                            default: break;
                        }

                    if(c >= 1){
                        switch(trees1[i][c - 1].getStatus()){

                            case '^': break;
                            case '.': break;
                            case '*': trees1[i][c-1].probability(); break;
                            default: break;
                        }

                        switch(trees1[i - 1][c - 1].getStatus()){

                            case '^': break;
                            case '.': break;
                            case '*': trees1[i-1][c-1].probability(); break;
                            default: break;
                        }
                    }
                }

                if(i <= 10){

                    if(c >= 1){

                        switch(trees1[i+1][c-1].getStatus()){

                            case '^': break;
                            case '.': break;
                            case '*': trees1[i+1][c-1].probability(); break;
                            default: break;

                        }
                    }
                }               
            }
        }
    }

}
Теги:
object

1 ответ

1

Я полагаю, вы хотите сделать эту программу более объектной.

Создайте дерево классов, которое имеет некоторую позицию и способ определить, является ли другое дерево соседним.

interface OurTree{
    public int getPosition();
    public boolean isNeighbour(OurTree tree);
    public boolean isBurning();
}

Внедрение этого интерфейса поможет вам.

Создайте набор объектов вышеуказанного реализованного интерфейса (предположим, что это лес). Прокрутите набор и определите, горит ли какое-либо дерево. если да, сожгите его соседей.

В качестве альтернативы вы можете определить метод возврата соседей данного дерева и сжечь их все сразу.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню