2015-10-26 58 views
0

我正試圖創建一個16(4x4)卡的網格。總共有8張不同的牌,所以每種牌都會重複兩次。如何在循環中分配多個相同的字符串?

private static int rows = 4; 
private static int columns = 4; 

public static Card[][] card = new Card[rows][columns]; 

public String[][] printHiddenCard() { 
    for(int i = 0; i < card.length; i++){ 
     for(int j = 0; j < card[i].length; j++){ 
      card[i][j] = new QCard(); 
     } 
    } 
} 

我不知道如何插入兩個QCard,這是一個「?」或者我的7種其他類型的卡片(+, - ,%,/等)以隨機順序放入對象數組中。

回答

1

我會列出16張卡片,然後洗牌。

// c1, c2, c3, c4, c5, c6, c7, c8 are your 8 different Cards. 
List<Card> allCards = Arrays.asList(c1, c2, c3, c4, c5, c6, c7, c8); 
List<Card> list = new ArrayList<>(allCards); 
list.addAll(allCards); 
Collections.shuffle(list); 
int k = 0; 
for(int i = 0; i < rows; i++){ 
    for(int j = 0; j < columns; j++){ 
     card[i][j] = list.get(k++); 
    } 
} 
相關問題