没有使用数组的纸牌游戏

时间:2014-03-05 12:35:38

标签: c#

我们有一项任务是创建随机牌(5张牌)。卡片不能相同的地方。我们还没有学会如何使用数组,所以如果有人能帮助我们在不使用数组的情况下开始使用它会很好。

这就是我们开始的方式,但我们无法弄清楚如何不再使用同一张卡片。

static void Cards()
{
     var rnd = new Random();
     var suit, rank, count = 0;

     while (count < 5)
     { 
         rank = rnd.Next(13) + 1;
         suit = rnd.Next(4) + 1;
         if (suit == 1)
         {
             Console.WriteLine("Spader " + rank);
         }
         else if (suit == 2)
         {
             Console.WriteLine("Hjärter " + rank);
         }
         else if (suit == 3)
         {
             Console.WriteLine("Ruter " + rank);
         }
         else
         {
             Console.WriteLine("Klöver " + rank);
         }
         count++;
    }
}

谢谢!

1 个答案:

答案 0 :(得分:0)

这是数组可以处理的问题,因此学习如何使用它们会更容易。如果没有它们,您需要将5张卡存储在变量(字符串card1,字符串card2等)中,然后在每次迭代检查中查看该卡是否匹配其中任何一个并丢弃它,否则保存它。但是你有一大堆条件代码来查看将它存储在哪个变量中......

更容易拥有一个数组

string[] cards = new string[5]; 

然后你可以循环遍历数组寻找匹配(类似这样)

for(int idx=0; idx<5; idx++){
  if(cards[idx]==thecardyouhavejustcreatedwithrandomcode){
    break; //bail out of the for on a match
  }
  cards[iAntalKort]=thecardyouhavejustcreatedwithrandomcode;
}