2017-11-07 1 views
-2

이것은 처음 질문입니다. 실수해서 죄송합니다.스도쿠에서 루프를 반복하고 솔버를 생성하십시오

유일한 행을 생성하기 위해 두 번째 루프를 수행하는 방법은 무엇입니까?

난 독특한 솔루션 프로그램 끊기를 찾기 위해 두 번째 루프를 추가 할 때마다 ...

static void Main(string[] args) 
    { 
     int[,] tab = new int[9, 9]; 

     Random r = new Random(); 

     List<int> temp = new List<int>{ 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 

     for(int i = 0; i < 9; i++) 
     { 
      for(int j = 0; j < 9; j++) 
      {      
       while (true) 
       { 
        bool uniq = true; 

        int randomNumber = r.Next(0, 9); 

        for (int z = 0; z < i; z++) 
        {      
         if (randomNumber==tab[z,j]) 
         { 
          uniq = false; 
         } 
        }      
        if (uniq == false) 
        { 
         continue; 
        } 
        tab[i, j] = randomNumber; 

        temp.Remove(randomNumber); 
        break; 
       } 
+0

"프로그램 끊기은"- 그게 무슨 뜻 이죠? – OldProgrammer

+0

그럼. 많은. 루프. 너 뭐하려고? –

+0

모든 행과 열에 고유 번호가있는 테이블을 생성하려고합니다. 내 프로그램에서 고유 한 열 번호를 얻을 수 있지만 행의 숫자와 동일한 방법을 잘 모르는 ... –

답변

0

이 시도 :

private Random r = new Random(); 

void Main() 
{ 
    int[,] tab = new int[9, 9]; 

    List<int> digits = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 

    for (int i = 0; i < 9; i++) 
    { 
     List<int> temp = digits.OrderBy(x => r.Next()).ToList(); 
     for (int j = 0; j < 9; j++) 
     { 
      tab[i, j] = temp[j]; 
     } 
    } 
} 
관련 문제