2014-01-14 85 views
1

我無法獲得我的輸出權限。基本上,我正在寫一個基本的搜索遊戲,我的程序有多維char數組(每個索引已經初始化爲一個空格)。有2名玩家輪流猜測(輸入2個空格分隔的數字),如果玩家1猜錯了,它會將'1'存儲到該字符數組中;如果玩家2猜測它錯了,它將是2.但是當他們中的一個猜測它是正確的時,它會顯示它們的數字加上已經存儲在該char數組中的字符'P'(例如:1P或2P)我使用隨機類來隨機化要搜索的對象的位置)。我已經完成了一切,除非我真的不知道如何在char數組的相同索引中顯示球員號碼和'P'。我知道我們不能有2個字符,因爲它是字符。使用多維字符數組?

下面是我的代碼樣本運行(其實我試過,但它會顯示一個「?」):

enter image description here

,這是輸出我猜想得到,當他們發現一名球員的 'P':

enter image description here

下面是代碼當我在toString()方法用來輸出數組:

for(int top = 0; top < totalRooms * 2; top++) { 
      a+= "__"; 
    } 
    for(int row = hidingPlaces.length - 1; row >= 0; row--) { 
     a += "\n"; 
     for(int col = 0; col < hidingPlaces[row].length; col++) { 
      a += "| " + hidingPlaces[row][col] + " "; 
     } 
     a += "|\n"; 
     for(int bot = 0; bot < hidingPlaces[row].length; bot++) { 
      a += "|___"; 
     } 
     a += "|"; 
    } 

這是我初始化字符數組與玩家#代碼:

public boolean searchRoom(int floor, int room, char players) { 
    if (hidingPlaces[floor][room] != hidingPlaces[floorLocation][roomLocation]) { 
    hidingPlaces[floor][room] = players; // fill out those empty spots in the array with players' index 
    aArray[floor][room] = players; // samething here, except that this array doesn't show 'P' 
    found = false; 
    } else { 
    winner = players; // char winner is now the players' index. 
    found = true; 
    }   
    return found;  

}

enter image description here

//output this array if puppy is found. 
    for(int top = 0; top < totalRooms * 2; top++) { 
      a+= "__"; 
    } 
    for(int row = hidingPlaces.length - 1; row >= 0; row--) { 
     a += "\n"; 
     for(int col = 0; col < hidingPlaces[row].length; col++) { 
      a += "| " + hidingPlaces[row][col] + " "; 
      if(hidingPlaces[row][col] == '3') { 
       a += "1P"; 
      } else if (hidingPlaces[row][col] == '4') { 
       a += "2P"; 
      } 
     } 
     a += "|\n"; 
     for(int bot = 0; bot < hidingPlaces[row].length; bot++) { 
      a += "|___"; 
     } 
     a += "|"; 
    } 
    } 
    return a; 
+0

其實,我的唯一途徑想想把玩家號碼+ P放在同一個單元格中與String有關?如果是這樣,有沒有辦法將2d字符數組轉換爲字符串數組? – Impalerz

+0

任何原因你不能使用3存儲1P找到小狗和4找到2P小狗?如果沒有,那麼你可以在輸出循環中使用一個條件(如果它等於3個輸出「1P」) –

+0

我回滾了你的編輯。你提出問題後不能刪除問題,這對任何出現問題的人都沒用。請不要嘗試再次移除它。 –

回答

2

我能想到的兩種解決問題的。

1)'1P'不能存儲在字符數組中,因爲它由兩個字符組成。將其更改爲字符串數組將允許您存儲並輕鬆顯示多個字符。 2)如果你真的想使用一個字符數組,你可以存儲另一個符號/字母/數字代表'1p',另一個符號代表'2p'。然後您將添加像這樣到您的輸出(而不是顯示陣列的內容):

例如,如果「Q」代表1P:

if (hidingPlaces[row][col] == 'q') 
     System.out.print ("1p"); //plus the lines and spaces as appropriate 
+0

謝謝。我只能在這個任務中使用char數組。我會嘗試#2 – Impalerz

+0

它可能與您如何在toString()方法中設置if/else條件有關。你能發佈更新後的版本嗎? – Deena

+0

對不起。更新! – Impalerz