Exemplo n.º 1
0
            //wykonanie algorytmu, wyświetla tylko wynik
            private static int Wykonaj(uint[,] macierz_prawdziwa)
            {
                int counter = 0;

                uint[,] macierz = new uint[macierz_prawdziwa.GetLength(0), macierz_prawdziwa.GetLength(0)];
                for (int i = 0; i < macierz_prawdziwa.GetLength(0); i++)
                {
                    for (int j = 0; j < macierz_prawdziwa.GetLength(0); j++)
                    {
                        macierz[i, j] = macierz_prawdziwa[i, j];
                    }
                }
                int liczba = 0;

                int[,] nowe  = new int[macierz.GetLength(0), macierz.GetLength(0)];
                uint[,] zera = new uint[macierz.GetLength(0), macierz.GetLength(1)];

                Wegier.Krok1(macierz);
                int test = 0;

                int[,] pierwsze = RysujLinie(macierz, ref test, out zera);
                if (test < macierz.GetLength(0))
                {
                    Wegier.Krok2(macierz);
                    test     = 0;
                    pierwsze = RysujLinie(macierz, ref test, out zera);
                    if (test < macierz.GetLength(0))
                    {
                        while (liczba < macierz.GetLength(0))
                        {
                            nowe = Wegier.RysujLinie(macierz, ref liczba, out zera);
                            Wegier.Krok4(macierz, nowe);

                            //ładny spinner
                            switch (counter % 4)
                            {
                            case 0: Console.Write("/"); break;

                            case 1: Console.Write("-"); break;

                            case 2: Console.Write("\\"); break;

                            case 3: Console.Write("|"); counter = -1; break;
                            }
                            Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop);
                            counter++;
                        }
                    }
                }
                //Console.WriteLine();
                wWyswietlMacierz(macierz_prawdziwa, ZeraNiezalezne(macierz));
                Console.WriteLine();
                return(Policz(macierz_prawdziwa, zera));
            }
Exemplo n.º 2
0
            //wykonanie algorytmu, wyświetla wszystko krok po kroku
            private static int WykonajWyswietl(uint[,] macierz_wejsciowa)
            {
                uint[,] macierz = new uint[macierz_wejsciowa.GetLength(0), macierz_wejsciowa.GetLength(0)];
                for (int i = 0; i < macierz_wejsciowa.GetLength(0); i++)
                {
                    for (int j = 0; j < macierz_wejsciowa.GetLength(0); j++)
                    {
                        macierz[i, j] = macierz_wejsciowa[i, j];
                    }
                }

                int liczba = 0;

                int[,] nowe  = new int[macierz.GetLength(0), macierz.GetLength(0)];
                uint[,] zera = new uint[macierz.GetLength(0), macierz.GetLength(1)];
                int k = 1;

                Console.Write("Macierz wejściowa\n");
                Wegier.uWyswietlMacierz(macierz);
                Console.WriteLine();

                Wegier.Krok1(macierz);
                Console.WriteLine("Krok {0}: ", k++);
                uWyswietlMacierz(macierz);
                Console.WriteLine();
                zWyswietlMacierz(Wegier.ZeraNiezalezne(macierz));
                int test = 0;

                int[,] pierwsze = RysujLinie(macierz, ref test, out zera);
                Console.WriteLine("\nNaciśnij dowolny klawisz, aby przejść do kolejnego kroku.\n\n");
                Console.ReadKey(true);
                if (test < macierz.GetLength(0))
                {
                    Wegier.Krok2(macierz);
                    Console.WriteLine("Krok {0}: ", k++);
                    uWyswietlMacierz(macierz);
                    Console.WriteLine();
                    zWyswietlMacierz(Wegier.ZeraNiezalezne(macierz));
                    Console.WriteLine();
                    Console.WriteLine("Naciśnij dowolny klawisz, aby przejść do kolejnego kroku.\n\n");
                    Console.ReadKey(true);
                    test     = 0;
                    pierwsze = RysujLinie(macierz, ref test, out zera);
                    if (test < macierz.GetLength(0))
                    {
                        while (liczba < macierz.GetLength(0))
                        {
                            nowe = Wegier.RysujLinie(macierz, ref liczba, out zera);
                            if (liczba < macierz.GetLength(0))
                            {
                                Wegier.Krok4(macierz, nowe);
                                Console.WriteLine("Krok {0}: ", k++);
                                lWyswietlMacierz(nowe);
                                Console.WriteLine();
                                uWyswietlMacierz(macierz);
                                Console.WriteLine();

                                zWyswietlMacierz(Wegier.ZeraNiezalezne(macierz));

                                Console.WriteLine();
                                Console.WriteLine("Naciśnij dowolny klawisz, aby przejść do kolejnego kroku.\n\n");
                                Console.ReadKey(true);
                            }
                        }
                    }
                }
                Console.WriteLine("Krok {0}: ", k);
                wWyswietlMacierz(macierz_wejsciowa, ZeraNiezalezne(macierz));

                Console.WriteLine("\n");
                return(Policz(macierz_wejsciowa, zera));
            }