C# 不使用阵列的纸牌游戏

C# 不使用阵列的纸牌游戏,c#,C#,我们有一个任务,创建一个随机牌手5张牌。那里的牌不可能是一样的。我们还没有学会如何使用数组,所以如果有人能帮助我们在不使用数组的情况下入门,那就太好了 我们就是这样开始的,但我们不知道如何才能不获得同一张卡两次 static void Cards() { var rnd = new Random(); var suit, rank, count = 0; while (count < 5) { rank = rnd.Next(1

我们有一个任务,创建一个随机牌手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++;
    }
}

谢谢

这是数组可以处理的问题,因此学习如何使用它们会更容易。如果没有它们,您需要将5张卡存储在变量string card1、string 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;
}

1关于圣弗迪纳·勒克索尔·斯克里夫·科德·恩格尔斯卡,请主持人瓦拉·洛卡利塞特·斯文斯卡·勒克拉尔·洛卡利塞特(självklart vara lokaliserat)为你介绍斯文斯卡·福斯特(svenskar först vad niör)?3.芬兰人在里查斯特的农场工作。4和国际前缀iFarg i variabelnamn@请用扎什英语这是用他们自己的语言告诉他们使用英语让每个人都能理解:虽然这不能直接回答这个问题,但我相信鉴于这个问题,你肯定需要阅读它。我认为在这种情况下,可以使用5个变量来生成卡片,而不是数组。然后开始学习数组、列表、字典、哈希集和其他集合。