コード例 #1
0
        public static void zapiszZaleznosciKostka(List <int[, ]> wykryteZaleznosciKostka, string name, Cube kostkaKoncowaProcentowa, Cube kostkaKoncowa)
        {
            string       FILE_NAME = name;
            StreamWriter sw        = new StreamWriter(FILE_NAME);
            string       text      = "";

            for (int i = 0; i < wykryteZaleznosciKostka.Count; i++)
            {
                text = (wykryteZaleznosciKostka[i][0, 0] + 1) + " " + (wykryteZaleznosciKostka[i][0, 1] + 1) + " " + (wykryteZaleznosciKostka[i][0, 2] + 1) + " proc: " +
                       kostkaKoncowaProcentowa[wykryteZaleznosciKostka[i][0, 0], wykryteZaleznosciKostka[i][0, 1], wykryteZaleznosciKostka[i][0, 2]] + " , ilosc wystapien pierwszych 2 dwojek lub/i trojek: " +
                       kostkaKoncowa[wykryteZaleznosciKostka[i][0, 0], wykryteZaleznosciKostka[i][0, 1], wykryteZaleznosciKostka[i][0, 0]] + "\n";
                Console.WriteLine(text);
                sw.WriteLine(text);
            }
            Console.WriteLine(wykryteZaleznosciKostka.Count);
            sw.WriteLine(wykryteZaleznosciKostka.Count);
            sw.Close();

            var csv = new StringBuilder();

            csv.AppendLine("nr, zaleznosci" + ";" + "procent");
            for (int i = 0; i < wykryteZaleznosciKostka.Count; i++)
            {
                var first  = (wykryteZaleznosciKostka[i][0, 0] + 1).ToString() + " & " + (wykryteZaleznosciKostka[i][0, 1] + 1).ToString() + " & " + (wykryteZaleznosciKostka[i][0, 2] + 1).ToString();
                var second = kostkaKoncowaProcentowa[wykryteZaleznosciKostka[i][0, 0], wykryteZaleznosciKostka[i][0, 1], wykryteZaleznosciKostka[i][0, 2]].ToString();
                //Suggestion made by KyleMit
                var newLine = string.Format("{0};{1}", first, second);
                csv.AppendLine(newLine);
            }
            //after your loop
            File.WriteAllText("arkuszKostka.csv", csv.ToString());
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: przepiorar/sudoku
        public static List <int[, ]> znajdzZaleznosciKostka(Cube kostka, int prog)
        {
            List <int[, ]> potencjalne = new List <int[, ]>();

            for (int i = 0; i < 72; i++)
            {
                for (int j = 0; j < 72; j++)
                {
                    for (int k = 0; k < 72; k++)
                    {
                        if (prog <= kostka[i, j, k] && i != j && i != k && j != k)
                        {
                            potencjalne.Add(new int[1, 3] {
                                { i, j, k }
                            });
                        }
                    }
                }
            }
            int licznik = potencjalne.Count;

            for (int i = 0; i < licznik; i++)
            {
                int a = potencjalne[i][0, 0];
                int b = potencjalne[i][0, 1];
                int c = potencjalne[i][0, 2];
                if (a < 16 && b < 16 && c < 16 || a >= 16 && b >= 16 && c >= 16)
                {
                }
                else
                {
                    if (a < 16)
                    {
                        if (b < 16)
                        {
                            c = c - 16; //w macierzy dwójki są numerowane w przedziale 15-71, a w programie 0-55
                            if (Stale.ListaTrojek[a][0, 0] == Stale.ListaDwojek[c][0, 0] && Stale.ListaTrojek[a][0, 1] == Stale.ListaDwojek[c][0, 1] &&
                                Stale.ListaTrojek[a][1, 0] == Stale.ListaDwojek[c][1, 0] && Stale.ListaTrojek[a][1, 1] == Stale.ListaDwojek[c][1, 1] ||
                                Stale.ListaTrojek[a][1, 0] == Stale.ListaDwojek[c][0, 0] && Stale.ListaTrojek[a][1, 1] == Stale.ListaDwojek[c][0, 1] &&
                                Stale.ListaTrojek[a][2, 0] == Stale.ListaDwojek[c][1, 0] && Stale.ListaTrojek[a][2, 1] == Stale.ListaDwojek[c][1, 1] ||
                                Stale.ListaTrojek[b][0, 0] == Stale.ListaDwojek[c][0, 0] && Stale.ListaTrojek[b][0, 1] == Stale.ListaDwojek[c][0, 1] &&
                                Stale.ListaTrojek[b][1, 0] == Stale.ListaDwojek[c][1, 0] && Stale.ListaTrojek[b][1, 1] == Stale.ListaDwojek[c][1, 1] ||
                                Stale.ListaTrojek[b][1, 0] == Stale.ListaDwojek[c][0, 0] && Stale.ListaTrojek[b][1, 1] == Stale.ListaDwojek[c][0, 1] &&
                                Stale.ListaTrojek[b][2, 0] == Stale.ListaDwojek[c][1, 0] && Stale.ListaTrojek[b][2, 1] == Stale.ListaDwojek[c][1, 1])
                            {
                                potencjalne.RemoveAt(i);
                                licznik--;
                                i--;
                            }
                        }
                        else
                        {
                            if (c < 16)
                            {
                                b = b - 16; //w macierzy dwójki są numerowane w przedziale 15-71, a w programie 0-55
                                if (Stale.ListaTrojek[a][0, 0] == Stale.ListaDwojek[b][0, 0] && Stale.ListaTrojek[a][0, 1] == Stale.ListaDwojek[b][0, 1] &&
                                    Stale.ListaTrojek[a][1, 0] == Stale.ListaDwojek[b][1, 0] && Stale.ListaTrojek[a][1, 1] == Stale.ListaDwojek[b][1, 1] ||
                                    Stale.ListaTrojek[a][1, 0] == Stale.ListaDwojek[b][0, 0] && Stale.ListaTrojek[a][1, 1] == Stale.ListaDwojek[b][0, 1] &&
                                    Stale.ListaTrojek[a][2, 0] == Stale.ListaDwojek[b][1, 0] && Stale.ListaTrojek[a][2, 1] == Stale.ListaDwojek[b][1, 1] ||
                                    Stale.ListaTrojek[c][0, 0] == Stale.ListaDwojek[b][0, 0] && Stale.ListaTrojek[c][0, 1] == Stale.ListaDwojek[b][0, 1] &&
                                    Stale.ListaTrojek[c][1, 0] == Stale.ListaDwojek[b][1, 0] && Stale.ListaTrojek[c][1, 1] == Stale.ListaDwojek[b][1, 1] ||
                                    Stale.ListaTrojek[c][1, 0] == Stale.ListaDwojek[b][0, 0] && Stale.ListaTrojek[c][1, 1] == Stale.ListaDwojek[b][0, 1] &&
                                    Stale.ListaTrojek[c][2, 0] == Stale.ListaDwojek[b][1, 0] && Stale.ListaTrojek[c][2, 1] == Stale.ListaDwojek[b][1, 1])
                                {
                                    potencjalne.RemoveAt(i);
                                    licznik--;
                                    i--;
                                }
                            }
                            else
                            {
                                b = b - 16; //w macierzy dwójki są numerowane w przedziale 15-71, a w programie 0-55
                                c = c - 16;
                                if (Stale.ListaTrojek[a][0, 0] == Stale.ListaDwojek[b][0, 0] && Stale.ListaTrojek[a][0, 1] == Stale.ListaDwojek[b][0, 1] &&
                                    Stale.ListaTrojek[a][1, 0] == Stale.ListaDwojek[b][1, 0] && Stale.ListaTrojek[a][1, 1] == Stale.ListaDwojek[b][1, 1] ||
                                    Stale.ListaTrojek[a][1, 0] == Stale.ListaDwojek[b][0, 0] && Stale.ListaTrojek[a][1, 1] == Stale.ListaDwojek[b][0, 1] &&
                                    Stale.ListaTrojek[a][2, 0] == Stale.ListaDwojek[b][1, 0] && Stale.ListaTrojek[a][2, 1] == Stale.ListaDwojek[b][1, 1] ||
                                    Stale.ListaTrojek[a][0, 0] == Stale.ListaDwojek[c][0, 0] && Stale.ListaTrojek[a][0, 1] == Stale.ListaDwojek[c][0, 1] &&
                                    Stale.ListaTrojek[a][1, 0] == Stale.ListaDwojek[c][1, 0] && Stale.ListaTrojek[a][1, 1] == Stale.ListaDwojek[c][1, 1] ||
                                    Stale.ListaTrojek[a][1, 0] == Stale.ListaDwojek[c][0, 0] && Stale.ListaTrojek[a][1, 1] == Stale.ListaDwojek[c][0, 1] &&
                                    Stale.ListaTrojek[a][2, 0] == Stale.ListaDwojek[c][1, 0] && Stale.ListaTrojek[a][2, 1] == Stale.ListaDwojek[c][1, 1])
                                {
                                    potencjalne.RemoveAt(i);
                                    licznik--;
                                    i--;
                                }
                            }
                        }
                    }
                    else
                    {
                        if (b < 16)
                        {
                            if (c < 16)
                            {
                                a = a - 16;
                                if (Stale.ListaTrojek[b][0, 0] == Stale.ListaDwojek[a][0, 0] && Stale.ListaTrojek[b][0, 1] == Stale.ListaDwojek[a][0, 1] &&
                                    Stale.ListaTrojek[b][1, 0] == Stale.ListaDwojek[a][1, 0] && Stale.ListaTrojek[b][1, 1] == Stale.ListaDwojek[a][1, 1] ||
                                    Stale.ListaTrojek[b][1, 0] == Stale.ListaDwojek[a][0, 0] && Stale.ListaTrojek[b][1, 1] == Stale.ListaDwojek[a][0, 1] &&
                                    Stale.ListaTrojek[b][2, 0] == Stale.ListaDwojek[a][1, 0] && Stale.ListaTrojek[b][2, 1] == Stale.ListaDwojek[a][1, 1] ||
                                    Stale.ListaTrojek[c][0, 0] == Stale.ListaDwojek[a][0, 0] && Stale.ListaTrojek[c][0, 1] == Stale.ListaDwojek[a][0, 1] &&
                                    Stale.ListaTrojek[c][1, 0] == Stale.ListaDwojek[a][1, 0] && Stale.ListaTrojek[c][1, 1] == Stale.ListaDwojek[a][1, 1] ||
                                    Stale.ListaTrojek[c][1, 0] == Stale.ListaDwojek[a][0, 0] && Stale.ListaTrojek[c][1, 1] == Stale.ListaDwojek[a][0, 1] &&
                                    Stale.ListaTrojek[c][2, 0] == Stale.ListaDwojek[a][1, 0] && Stale.ListaTrojek[c][2, 1] == Stale.ListaDwojek[a][1, 1])
                                {
                                    potencjalne.RemoveAt(i);
                                    licznik--;
                                    i--;
                                }
                            }
                            else
                            {
                                a = a - 16;
                                c = c - 16;
                                if (Stale.ListaTrojek[b][0, 0] == Stale.ListaDwojek[a][0, 0] && Stale.ListaTrojek[b][0, 1] == Stale.ListaDwojek[a][0, 1] &&
                                    Stale.ListaTrojek[b][1, 0] == Stale.ListaDwojek[a][1, 0] && Stale.ListaTrojek[b][1, 1] == Stale.ListaDwojek[a][1, 1] ||
                                    Stale.ListaTrojek[b][1, 0] == Stale.ListaDwojek[a][0, 0] && Stale.ListaTrojek[b][1, 1] == Stale.ListaDwojek[a][0, 1] &&
                                    Stale.ListaTrojek[b][2, 0] == Stale.ListaDwojek[a][1, 0] && Stale.ListaTrojek[b][2, 1] == Stale.ListaDwojek[a][1, 1] ||
                                    Stale.ListaTrojek[b][0, 0] == Stale.ListaDwojek[c][0, 0] && Stale.ListaTrojek[b][0, 1] == Stale.ListaDwojek[c][0, 1] &&
                                    Stale.ListaTrojek[b][1, 0] == Stale.ListaDwojek[c][1, 0] && Stale.ListaTrojek[b][1, 1] == Stale.ListaDwojek[c][1, 1] ||
                                    Stale.ListaTrojek[b][1, 0] == Stale.ListaDwojek[c][0, 0] && Stale.ListaTrojek[b][1, 1] == Stale.ListaDwojek[c][0, 1] &&
                                    Stale.ListaTrojek[b][2, 0] == Stale.ListaDwojek[c][1, 0] && Stale.ListaTrojek[b][2, 1] == Stale.ListaDwojek[c][1, 1])
                                {
                                    potencjalne.RemoveAt(i);
                                    licznik--;
                                    i--;
                                }
                            }
                        }
                        else
                        {
                            a = a - 16;
                            b = b - 16;
                            if (Stale.ListaTrojek[c][0, 0] == Stale.ListaDwojek[a][0, 0] && Stale.ListaTrojek[c][0, 1] == Stale.ListaDwojek[a][0, 1] &&
                                Stale.ListaTrojek[c][1, 0] == Stale.ListaDwojek[a][1, 0] && Stale.ListaTrojek[c][1, 1] == Stale.ListaDwojek[a][1, 1] ||
                                Stale.ListaTrojek[c][1, 0] == Stale.ListaDwojek[a][0, 0] && Stale.ListaTrojek[c][1, 1] == Stale.ListaDwojek[a][0, 1] &&
                                Stale.ListaTrojek[c][2, 0] == Stale.ListaDwojek[a][1, 0] && Stale.ListaTrojek[c][2, 1] == Stale.ListaDwojek[a][1, 1] ||
                                Stale.ListaTrojek[c][0, 0] == Stale.ListaDwojek[b][0, 0] && Stale.ListaTrojek[c][0, 1] == Stale.ListaDwojek[b][0, 1] &&
                                Stale.ListaTrojek[c][1, 0] == Stale.ListaDwojek[b][1, 0] && Stale.ListaTrojek[c][1, 1] == Stale.ListaDwojek[b][1, 1] ||
                                Stale.ListaTrojek[c][1, 0] == Stale.ListaDwojek[b][0, 0] && Stale.ListaTrojek[c][1, 1] == Stale.ListaDwojek[b][0, 1] &&
                                Stale.ListaTrojek[c][2, 0] == Stale.ListaDwojek[b][1, 0] && Stale.ListaTrojek[c][2, 1] == Stale.ListaDwojek[b][1, 1])
                            {
                                potencjalne.RemoveAt(i);
                                licznik--;
                                i--;
                            }
                        }
                    }
                }
            }
            return(potencjalne);
        }