2016-04-27 13 views
1

私はC#チュートリアルからエクササイズをしています。52枚のカードの標準デッキから各カードをプリントする必要があります。 私はこのコードを持っている:トランプカードに番号を割り当てる

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

をしかし、私は立ち往生し、それらにスーツとランクを表すと数字を代用する方法がわからないです。 私はループとswitch文を使用することになっています。

+1

だけFYI、カードのデッキは52枚のカードが含まれ - 13 – mhodges

+1

イエスの4セットを2-14は、カードと1-4彼らのセットを表すなぜ、 – paddy

+0

thatsの彼はちょうど高 – 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

スーツ用とランク用の2つの列挙を宣言して、それらをループすることができます。

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

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

チュートリアルにしたがって、私はループとswitch文を使用すると思います – paddy

+3

@paddyあなたは本当にあなたの質問にそれを含めるべきです。 – juharr

+0

@paddy 'enum'をループすることはできますが、' foreach(Enum.GetValues(typeof(Ranks))のランクランク) ' – Xiaoy312

3

次の2つの文字列配列との両方の上にちょうど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);