2016-04-27 6 views
1

Ich mache Übung von C# Tutorial und ich muss jede Karte aus dem Standard-Deck von 52 Karten drucken. Ich habe diesen Code:Zahlen zu Spielkarten zuweisen

for (int n = 2; n <= 14; n++) 
{ 
    for (int c = 1; c <= 4; c++) 
     Console.Write(n + " " + c + " "); 
} 
Console.ReadKey(); 

Aber ich bin stecken und nicht sicher, wie Zahlen zu ersetzen, mit ihnen passt und Reihen darstellt. Ich soll Schleifen und Switch-Anweisungen verwenden.

+1

Gerade FYI, ein Kartenspiel 52 Karten enthält - 4 Sätze von 13 – mhodges

+1

ja, das ist, warum 2-14 Karten darstellen und 1-4 ihre Sets – paddy

+0

er hat, dass er gerade Asse als hohe – Jonesopolis

Antwort

1

Verwenden von Schleifen und Schalteranweisungen. Sie können dies für schönere Karten- und Anzugnamen variieren.

for (int n = 2; n <= 14; n++) 
{ 
    for (int c = 1; c <= 4; c++) 
    { 
     switch (n) 
     { 
      case 11: 
       Console.Write("J" + " "); 
       break; 
      case 12: 
       Console.Write("Q" + " "); 
       break; 
      case 13: 
       Console.Write("K" + " "); 
       break; 
      case 14: 
       Console.Write("A" + " "); 
       break; 
      default: 
       Console.Write(n.ToString() + " "); 
       break; 
     } 
     switch (c) 
     { 
      case 1: 
       Console.WriteLine("H"); 
       break; 
      case 2: 
       Console.WriteLine("D"); 
       break; 
      case 3: 
       Console.WriteLine("S"); 
       break; 
      case 4: 
       Console.WriteLine("C"); 
       break; 
      default: 
       Console.WriteLine("?"); 
       break; 
     } 

    } 

} 
Console.ReadKey(); 
+0

Vielen Dank für die Lösung! Genau das habe ich gesucht. – paddy

4

Sie könnten zwei Aufzählungen für die Anzüge und einen für die Ränge deklarieren und einfach durchlaufen.

public enum Suits { Hearts, Spades, Clubs, Diamonds } 

public enum Ranks 
{ 
    Ace, 
    Two, 
    Three, 
    Four, 
    Five, 
    Six, 
    Seven, 
    Eight, 
    Nine, 
    Ten, 
    Jack, 
    Queen, 
    King 
} 
+0

in Übereinstimmung mit Tutorial Ich bin der Meinung, dass Schleifen und Switch-Anweisungen verwenden – paddy

+3

@paddy Dann sollten Sie das wirklich in Ihre Frage aufnehmen. – juharr

+0

@paddy Sie können immer noch eine 'enum' durchlaufen, benutzen Sie einfach foreach (Ranks in Enum.GetValues ​​(typeof (Ränge))) – Xiaoy312

3

Sie könnten zwei String-Arrays erstellen und beide nur foreach über.

var suites = new [] { "Clubs", "Spades", "Hearts", "Diamonds" }; 
var ranks = new [] { "Deuce", "Three",...., "Ace"} 

foreach(var suite in suites) 
    foreach(var rank in ranks) 
     Console.WriteLine(rank + " of " + suite);