簡體   English   中英

對象-我在做什么錯?

[英]Objects - What am I doing wrong?

我正在嘗試創建一個對象數組,即Trees(如森林)12x12。 一開始他們都是樹。 用戶輸入要開始的火災的次數以及火災蔓延到周圍物體之一的概率。 當我使用array [] []時,它可以工作,但是當嘗試使其與對象一起工作時,我無法讓對象檢查其周圍的對象,然后決定是否着火。 我是該網站的新手,所以我不確定您需要看什么。

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;

                        }
                    }
                }               
            }
        }
    }

}

我想您想使該程序更加面向對象。

創建一個類Tree,該類具有一定的位置並可以識別另一棵樹是否是鄰居。

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

實施上述界面將為您提供幫助。

創建上述實現的接口的一組對象(假定為森林)。 遍歷該集合,並確定是否有任何樹木着火。 如果是,請燒毀其鄰居。

另外,您可以定義一個方法來返回給定樹的鄰居,並立即將其全部刻錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM