2017-10-09 55 views
-2

我有2個問題,當我嘗試生成隨機數,第一個int valor = rdn.Next(10,42);,當我打電話給這個rdn.Next()生成數字總是10或41,第二個cell = list[rdn.Next(0,lista.Count - 1)];有時名單將有大小2,但產生數總是0C#隨機總是返回最初或最後一個號碼

public static List<BlocoUnico> GerarMatriz(BlocoUnico[,] maze) 
    { 
     Random rdn = new Random(); 
     List<BlocoUnico> list = new List<BlocoUnico>(); 
     List<BlocoUnico> cellList = new List<BlocoUnico>(); 
     BlocoUnico cell = maze[1, 0]; 
     int valor = rdn.Next(10,42); 
     for (int i = 0; i < valor; i++) 
     { 
      cellList.Add(cell); 
      list = VerificarBlocos(cell, maze, cellList); 
      cell = list[rdn.Next(0, list.Count - 1)]; 
      cell.Passou = "*"; 
      list.Clear(); 
     } 
     return cellList; 
    } 
+2

嘗試使用種子... – rmjoia

+6

「有時名單將有大小2,但產生數總是0」。那麼是的,因爲你調用了'rdn.Next(0,1)',並且上邊界是唯一的,所以0是它可以返回的唯一值。 –

+3

至於第一部分 - 我非常懷疑'rdn.Next(10,42)'總是返回10或41.請提供[mcve]。 –

回答

0

把隨機的方法之外。

例如爲:

//In the class 
static Random rnd = new Random(); 
相關問題