Optymalizacja kodu generującego sudoku.

0

Witam,

Udało mi się napisać kod który generuje unikalne liczby w kolumnie i wierszu ale liczy on bez końca. Gdy pozwole mu wpisać w problematyczne miejsca zera to wszystko jest w porządku.

Wie ktoś jak to zoptymalizować czy zmienić w ogóle podejście ? Bo moim kolejnym problemem będzie to by w małych kwadratach w sudoku były tylko liczby od 1 do 9. Próbowałem "mieszać" ustawieniem gotowej planszy tak by na jej podstawie generować nowe ale z jeszcze gorszym rezultatem...

int[,] tab = new int[9, 9];
            Random r = new Random();

            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++)
                {
                    for (int k = 0; k < 9; k++)
                    {
                        if(temp[j] == tab[k, j])
                        {
                            temp[j] = 0;
                            Console.WriteLine("Houston mamy problem");
                            continue; 
                        }
                        tab[i, j] = temp[j];
                    }
                }
            }
1

Można mieć kilka takich wzorów i na ich podstawie tworzyć nowe sudoku
https://4programmers.net/Pastebin/7704

1 użytkowników online, w tym zalogowanych: 0, gości: 1