0

私は現在、大学向けの戦艦ゲームの作成を任されています。というわけで、グリッドの範囲内に船を降ろすことができました。私の唯一の問題は、船が他の船と衝突することに関して、船のレイアウトを検証することです。私は読んだことがありますが、おそらく最善の行動は2パス接続コンポーネントアルゴリズムですが、それをどのように実装するかは完全にはわかりません。

これは、現在 PlaceShips メソッド内にあるものです。

public void placeShips(){
    for(int iter = 0; iter < 5; iter++){
        size = shipSizes[iter];
        rotation = randNum.nextInt(2)+1;
        while(!valid){
            rows = randNum.nextInt(10)+1;
            cols = randNum.nextInt(10)+1;
            if(rotation ==1){
                if (cols > mGame.getmColumns()- size){
                    valid = false;
                }
                else{
                    //assumed that the connected component algorithm needs to go here
                    valid = true;
                }
            }
            else if(rotation == 2){
                if (rows > mGame.getmRows() - size){
                    valid = false;
                }
                else{
                    //assumed that the connected component algorithm needs to go here
                    valid = true;
                }
            }
        }
        valid = false;
        //Draw ships
        for(int i = 0; i < size; i++){
            if(rotation == 1){
                gridPos[cols-1][rows-1] = 1;
                cols = cols + 1;
            }
            else if(rotation == 2){
                gridPos[cols-1][rows-1] = 1;
                rows = rows + 1;
            }
        }
    }
}

}

4

0 に答える 0