2016-11-09 1 views
1

Zuerst beginnen Sie schlecht, indem Sie erklären, was ich habe, dann, was ich versuche zu tun.Unterscheidende Reihen in meiner Tabelle

Derzeit erstellt mein Programm ein Kartenspiel mit Arrays (ich will nicht enum). Dann mischt er die Karten in eine zufällige Reihenfolge und druckt eine Tabelle mit 7 x 7 Karten.

Ich möchte den Benutzer fragen, in welcher Zeile sich seine Karte befindet, und dann die Tabelle so spiegeln, dass die ausgewählte Zeile jetzt eine Spalte ist.

Wie unterscheide ich die Zeilen (wie in einer 2D-Array), so dass ich dann den Benutzer fragen kann, welche Zeile ihre Karte in und Wie kann ich diese Tabelle drehen, so dass die Zeile die Spalte wird

Hier ist mein Code so weit:

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

... und das Problem/die Frage ist? –

+1

Der Vorgang, den Sie versuchen, wird als "transpose" bezeichnet. Es könnte sein, dass bereits ein paar Sachen da sind, die das tun können –

+1

@StefanFreitag das Problem/die Frage ist "Was ich tun möchte, ist in der Lage, den Benutzer fragen, welche Zeile ihre Karte ist, dann kippen Sie die Tabelle, so dass die Zeile Sie haben jetzt eine Spalte ausgewählt. " –

Antwort

0
  • Grundsätzlich könnten Sie auch weiterhin die Karten des Decks in der gegebenen Array zu speichern. Um von der Array-Position zu einer Zeile und Spalte zu mappen, können Sie z.B. die / (um die Zeile zu finden) und % (um die Spalte in der Zeile zu finden) Operatoren.
  • In Bezug auf das Spiegeln: Denken Sie an eine Methode wie die implementierte toString(). Lassen Sie die neue Methode einen boolean transposed als Parameter haben. Abhängig vom Wert (true/false) können Sie die Karten entweder auf die eine oder die andere (transponierte) Weise drucken - das Modell bleibt unberührt.