第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

處理3中二維數(shù)組的變化值

處理3中二維數(shù)組的變化值

慕標琳琳 2021-12-10 16:13:04
我正在處理 3 中制作單人戰(zhàn)艦游戲。為了生成比賽場地,我創(chuàng)建了一個二維數(shù)組,該數(shù)組包含一個布爾值,表示網(wǎng)格單元是否已被單擊。為了生成這個數(shù)組,我使用以下函數(shù):boolean[][] clicked = {};void initArray(int gridSize) {    boolean[] row = {};    for (int i = 0; i < gridSize; i++) row = (boolean[]) append(row, false);    for (int i = 0; i < gridSize; i++) clicked = (boolean[][]) append(clicked, row);}我遇到的問題是,每當我嘗試將一個單元格的值更改為 true 時,該行中的所有值也會變?yōu)?true。這是我用來更改和打印數(shù)組的代碼:void setup() {    initArray(3);    clicked[2][1] = true;    println(clicked[0]);    println(clicked[1]);    println(clicked[2]);}  我只想更改第三行的第二個值,但它更改了每一行的第二個值。這是輸出:[0] false[1] true[2] false[0] false[1] true[2] false[0] false[1] true[2] false我不允許在此作業(yè)中使用 OOP。提前致謝。
查看完整描述

1 回答

?
慕絲7291255

TA貢獻1859條經(jīng)驗 獲得超6個贊

您只創(chuàng)建一個row對象并將此對象附加到每一行。最后每一行都指向同一個row對象。所以似乎改變一行的元素也會影響其他行。


row為網(wǎng)格的每一行創(chuàng)建一個 sparte對象,以解決您的問題:


boolean[][] clicked = {};


void initArray(int gridSize) {


    for (int i = 0; i < gridSize; i++) {

        boolean[] row = {}; // <--- new object for each row

        for (int j = 0; j < gridSize; j++)

            row = (boolean[]) append(row, false);

        clicked = (boolean[][]) append(clicked, row);

    }

}


查看完整回答
反對 回復 2021-12-10
  • 1 回答
  • 0 關注
  • 190 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號