亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

你能在java中的方法開始時指定使用哪個變量嗎?

你能在java中的方法開始時指定使用哪個變量嗎?

慕容3067478 2023-10-13 15:17:01
我很想稍微縮短一下這段代碼,并可能使其更容易為我的老師所閱讀。問題是我不知道我是否可以做這樣的事情。這是帶有示例的代碼:if((polelode1[x][y] || polelode1[x][y + 1] || polelode1[x][y + 2] || polelode1[x - 1][y + 1] || polelode1[x - 1][y + 2] || polelode1[x][y + 3])!= true){ //kontrola kolize    polelode1[x][y] = true;    polelode1[x][y + 1] = true;    polelode1[x][y + 2] = true;    polelode1[x - 1][y + 1] = true;    polelode1[x - 1][y + 2] = true;    polelode1[x][y + 3] = true;    pocetparniku = pocetparniku + 1;}else {    System.out.println("can't create boat on another boat!");    drawAim();}if((polelode2[x][y] || polelode2[x][y + 1] || polelode2[x][y + 2] || polelode2[x - 1][y + 1] || polelode2[x - 1][y + 2] || polelode2[x][y + 3])!= true){ //kontrola kolize    polelode2[x][y] = true;    polelode2[x][y + 1] = true;    polelode2[x][y + 2] = true;    polelode2[x - 1][y + 1] = true;    polelode2[x - 1][y + 2] = true;    polelode2[x][y + 3] = true;}問題是polelode1orpolelode2布爾字段,我希望它能像這樣工作:if((p[x][y] || p[x][y + 1] || p[x][y + 2] || p[x - 1][y + 1] || p[x - 1][y + 2] || p[x][y + 3])!= true){     p[x][y] = true;    p[x][y + 1] = true;    p[x][y + 2] = true;    p[x - 1][y + 1] = true;    p[x - 1][y + 2] = true;    p[x][y + 3] = true;}而不是p使用polelode1或polelode2.那可能嗎?任何幫助表示贊賞。
查看完整描述

3 回答

?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

你可以做幾件事。就像循環兩個polelode1、polelode2一樣。


for(bool[][] p: Arrays.asList(polelode1, polelode2)){

    if((p[x][y] || p[x][y + 1] || p[x][y + 2] || p[x - 1][y + 1] || p[x - 1][y + 2] || p[x][y + 3])!= true){ 

        p[x][y] = true;

        p[x][y + 1] = true;

        p[x][y + 2] = true;

        p[x - 1][y + 1] = true;

        p[x - 1][y + 2] = true;

        p[x][y + 3] = true;

    }

}

你可以制定一個方法。


static void process(bool[][] p){

    // repeat code with p.

}

然后你就可以調用這個方法了。


process(polelode1);

process(polelode2);

您可以使用流。


查看完整回答
反對 回復 2023-10-13
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

您可以創建其他方法并調用它;例如 :


public boolean fct1(boolean[][] p){

    return !(p[x][y] || p[x][y + 1] || p[x][y + 2] || p[x - 1][y + 1] || p[x - 1][y + 2] || p[x][y + 3]);

}

public void fct2(boolean[][] p){

        p[x][y] = true;

        p[x][y + 1] = true;

        p[x][y + 2] = true;

        p[x - 1][y + 1] = true;

        p[x - 1][y + 2] = true;

        p[x][y + 3] = true;

}

進而


if(fct1(polelode1)){ //kontrola kolize

        fct2(polelode1);

        pocetparniku = pocetparniku + 1;

        }

        else {

           System.out.println("can't create boat on another boat!");

           drawAim();

        }


        if(fct1(polelode2)){ //kontrola kolize

        fct2(polelode2);

}


查看完整回答
反對 回復 2023-10-13
?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

好的,我發現您可以創建一個空布爾字段,并且可以復制另一個字段的值。這是迄今為止我最好的解決方案:


if (player == true) {

        p = polelode1; 

     }

  else {

        p = polelode2;

    }

    if((p[x][y] || p[x][y + 1] || p[x][y + 2] || p[x - 1][y + 1] || p[x - 1][y + 2] || p[x][y + 3])!= true){ 

        p[x][y] = true;

        p[x][y + 1] = true;

        p[x][y + 2] = true;

        p[x - 1][y + 1] = true;

        p[x - 1][y + 2] = true;

        p[x][y + 3] = true;

    }

進行了一些測試,發現了困難的方法。無論如何謝謝大家!


查看完整回答
反對 回復 2023-10-13
  • 3 回答
  • 0 關注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號