dimanche 16 janvier 2022

Generating random numbers without repetitions. C#

I have problem with my code. I want to generate random matrix 9x9 with digits from 1 to 9. Without repetions in rows and columns. I'm using VS in C#. My code is stopping at row 5. No errors and messeges. Please help me where is the problem.

namespace MatrixTest
{
    internal class MatrixTest
    {
        static void Main(string[] args)
        {

            int[,] wzor = new int[9, 9];

            static int losuj()
            {
                Random random = new Random();
                int wylosowanaLiczba;
                wylosowanaLiczba = random.Next(1, 10);
                return wylosowanaLiczba;
            }

            for (int wiersz = 0; wiersz < 9; wiersz++)
            {
                for (int kolumna = 0; kolumna < 9; kolumna++)
                {
                AlgorytmWiersz:

                    wzor[wiersz, kolumna] = losuj();
                    int wzorzec = wzor[wiersz, kolumna];

                    if (kolumna != 0)
                    {
                        int testKomWiersz = kolumna;
                        for (int i = 1; i < (kolumna + 1); i++)
                        {
                            testKomWiersz--;

                            int porownywanaW = wzor[wiersz, testKomWiersz];
                            if (wzorzec == porownywanaW)
                            {
                                goto AlgorytmWiersz;

                            }
                        }
                    }

                    if (wiersz != 0)
                    {
                        int testKomKolumna = wiersz;
                        for (int j = 1; j < (wiersz + 1); j++)
                        {
                            testKomKolumna--;
                            int porownywanaK = wzor[testKomKolumna, kolumna];
                            if (wzorzec == porownywanaK)
                            {
                                goto AlgorytmWiersz;

                            }
                        }
                    }   
                }
                Console.WriteLine(wzor[wiersz, 0] + "  " + wzor[wiersz, 1] + "  " + wzor[wiersz, 2] + "  " + wzor[wiersz, 3] + "  " + wzor[wiersz, 4] + "  " + wzor[wiersz, 5] + "  " + wzor[wiersz, 6] + "  " + wzor[wiersz, 7] + "  " + wzor[wiersz, 8]);
            }
        }
    }
}



Aucun commentaire:

Enregistrer un commentaire