2016-11-09 25 views
0

現在我有打印出像這樣的卡的甲板:移調我的數組

A of ♠ 9 of ♥ 6 of ♣ J of ♦ 9 of ♦ 2 of ♣ 9 of ♠  
6 of ♦ 2 of ♦ Q of ♠ 6 of ♠ 5 of ♠ J of ♥ 7 of ♦  
K of ♣ 4 of ♦ 8 of ♣ K of ♥ T of ♥ 5 of ♣ A of ♦  
7 of ♣ T of ♠ 7 of ♥ T of ♣ A of ♣ 8 of ♦ 7 of ♠  
2 of ♥ K of ♠ 8 of ♠ J of ♠ 8 of ♥ J of ♣ 4 of ♣  
3 of ♦ 5 of ♥ Q of ♦ T of ♦ 4 of ♥ Q of ♥ 3 of ♣  
K of ♦ 2 of ♠ 3 of ♥ 3 of ♠ 4 of ♠ 9 of ♣ 5 of ♦ 

我要問他們的卡是什麼行的用戶,那麼我想翻轉印刷表,他們的行是一列。

如何區分行以便我可以詢問用戶,然後如何翻轉表格以使其行現在成爲列。

我需要轉置嗎?我會怎麼做?

public class Deck { 
    private Card[] deck; 
    private int currentCard; 
    String[][] multi = new String[7][7]; 

    public Deck() { 
     String[] Faces = { 
      "2", "3", "4", "5", "6", "7", "8", "9", "T", "J", "Q", "K", "A" 
     }; 
     String[] Suits = { 
      "♠", "♣", "♦", "♥" 
     }; 

     deck = new Card[52]; 
     currentCard = 0; 

     for (int suit = 0; suit < 4; suit++) { 
      for (int face = 0; face < 13; face++) { 
       deck[(face + (suit * 13))] = new Card(Suits[suit], Faces[face]); 
      } 
     } 
    } 

    public void shuffle() { 
     currentCard = 0; 

     SecureRandom randomNumber = new SecureRandom(); 

     for (int first = 0; first < deck.length; first++) { 
      int second = randomNumber.nextInt(52); 

      Card temp = deck[first]; 

      deck[first] = deck[second]; 
      deck[second] = temp; 
     } 
    } 

    @Override 
    public String toString() { 
     String s = ""; 
     int k; 
     k = 0; 
     for (int i = 0; i < 7; i++) { 
      for (int j = 1; j <= 7; j++) 
       System.out.print(deck[k++] + " "); 
      System.out.println(""); 
     } 
     return (s); 
    } 

    public static void main(String[] args) { 
     Deck theDeck = new Deck(); 
     theDeck.shuffle(); 
     theDeck.toString(); 

    } 
} 
+0

只用'multi [j] [i]'交換'multi [i] [j]'。 –

+0

@Andy - 他在這裏沒有使用多維數組。 – BadZen

+0

@BadZen真的嗎?那麼這是什麼:'String [] [] multi = new String [7] [7];'。 –

回答

0

我只想讓甲板上的二維數組你想要的行和列的數量:private Card[#rows][#columns] deck;。然後你必須重寫你的填充,洗牌和toString算法,但這會爲你節省很多時間。

如Andy所指出的那樣,當您想將行更改爲列時,您可以從deck[row][column]更改爲deck[column][row]

對於詢問用戶,您可以檢查該值是否介於0和deck.length之間以及0和deck[0].length之間。