2016-04-27 73 views
1

我正在從C#教程做練習,我需要打印來自52張卡片的標準卡片中的每張卡片。 我有這樣的代碼:分配數字給撲克牌

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

但我卡住,不知道如何與代表他們的西裝和職級替代號碼。 我應該使用循環和切換語句。

+1

僅供參考,一副牌包含52張 - 4套13個 – mhodges

+1

是的,這就是爲什麼2-14代表卡和1-4的組 – paddy

+0

他說,他只是在治療尖子高 – Jonesopolis

回答

1

使用循環和switch語句。你可以對這個更好的卡片和套裝名稱做一個變化。

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

謝謝你的解決方案!這正是我所期待的。 – paddy

4

你可以聲明兩個枚舉一個用於套裝,另一個用於行列,並通過它們循環。

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

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

根據教程我假設使用循環和切換語句 – paddy

+3

@paddy然後你真的應該包括你的問題。 – juharr

+0

@paddy你仍然可以遍歷一個'enum',只需使用'foreach(Ranks rank in Enum.GetValues(typeof(Ranks)))' – Xiaoy312

3

您可以創建兩個字符串數組,只是foreach在兩個。

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);