2015-12-29 50 views
-1

所以我正在做一個程序,用戶可以選擇20個不同的數字,然後程序會打印出隨機7個字符長的樂透號碼。我試圖做的是通過按下輸入程序將打印出另外7個字符長的樂透號碼從那些選擇的20個號碼,這些行每次都會有所不同。這是迄今爲止我所擁有的。如何從給定數字打印出不同的樂透號碼行?

編輯。下面的代碼應該是正確的,現在它的作用是隻打印一個樂透號碼行。我想要做的更多的是,再次按下Enter鍵,它會從用戶可以選擇的號碼中打印另一個樂透號碼行。問題在於這些樂透號碼行必須每次都有所不同。基本上,該程序不斷打印新的樂透號碼行,直到你不能再做任何不同的行。希望能解釋得更好一些,並且詢問我是否必須更加專注,謝謝!

public class Lotto 
    { 
     List<int> numbers = new List<int>(); 

     public void NumberLoop() 
     { 
      Console.WriteLine("Choose 20 numbers: "); 

      for (int i = 0; i < 20; i++) 
      { 
       string input = Console.ReadLine(); 
       int number = Convert.ToInt32(input); 
       numbers.Add(number); 
      } 
     } 

     public void Random() 
     { 
      Random rnd = new Random(); 
      List<int> results = new List<int>(); 
      int[] numbah = new int[7]; 

      for (int i = 0; i < 7; i++) 
      { 
       int result = rnd.Next(0, 19); 
       int num = numbers[result]; 

       if (!results.Contains(result)) 
       { 
        Console.Write(num + " , "); 
        results.Add(num); 
       } 
       else 
       { 
        i--; 
       } 

      } 
     } 
    } 
} 

}

+0

什麼是與當前的代碼的問題? – Sybren

+4

與您期待的結果相比,您會得到什麼結果?只需將其添加到您的帖子中,這可以幫助我們進一步瞭解您的問題。 – Timmy

+0

不是問題的解決方案,但是你有一個錯誤:'rnd.Next(0,19)'上邊界是排他性的,所以你想'rnd.Next(0,20)' –

回答

0

在控制檯應用程序,你可以做到以下幾點:

class Program 
{ 
    static void Main(string[] args) 
    { 
     Lotto lotto = new Lotto(); 

     lotto.NumberLoop(); 

     char exitKey = ' '; 
     while (exitKey != 'e') 
     { 
      lotto.Random(); 
      Console.WriteLine(); 
      Console.WriteLine("Press e to exit, or enter to generate a new set of numbers.\n"); 
      exitKey = Console.ReadKey(false).KeyChar; 
     } 
    } 
}