2014-11-07 1 views
-3

나는 int 배열에 9 개의 숫자가 있고 난수를 임의의 라벨 (4 개의 라벨)로 설정하고 싶습니다. 버튼에이 코드 그래서 다음 라벨 옆에 난수를 추가하십시오난수를 임의의 라벨로 설정하는 방법

 int[] CardDeck = new int[9] { 3, 4, 5, 6, 7, 8, 9, 10, 11 }; 

     Random RandomCard = new Random(); 
     int randomIndex = RandomCard.Next(0, CardDeck.Length); 
     int randomNumber = CardDeck[randomIndex]; 

     if (string.IsNullOrEmpty(L1.Text)) 
     { 
      L1.Text = Convert.ToString(randomNumber); 
      return; 
     } 

     if (string.IsNullOrEmpty(L2.Text) && Convert.ToInt32(L1.Text) > 0) 
     { 
      L2.Text = Convert.ToString(randomNumber); 
     } 

을하지만 뭔가는 두 개의 레이블에 같은 번호를 설정합니다 잘못된 것입니다.

답변

0

동일한 randomNumber 변수를 사용하고 있기 때문입니다.

나머지 레이블에 대해 다른 난수를 생성해야합니다.

int randomLabel1 = CardDeck[RandomCard.Next(0, CardDeck.Length)]; 
int randomLabel2 = CardDeck[RandomCard.Next(0, CardDeck.Length)]; 

그런 다음 두 변수를 적절하게 사용하십시오.

이 방법은 고유 한 난수를 보장하지 않습니다. 두 레이블에 동일한 번호가 나타날 수 있습니다.

PS : 당신은 또한 새로운 임의의 숫자를 저장하기 위해 같은 randomNumber를 사용하지만, 첫 번째 레이블 설정 후에 그것을 을 기억 할 수

int randomNumber = CardDeck[RandomCard.Next(0, CardDeck.Length)]; 
//Set first label 
randomNumber = CardDeck[RandomCard.Next(0, CardDeck.Length)]; 
//Set second label 
관련 문제