public Sudoku(String sudokuNapisem) { indeks = -1; kolumny = 9; rzedy = 9; tabelaProblemu = new Zmienna[kolumny, rzedy]; String[] kolejneDane = sudokuNapisem.Split(';'); for (int i = 0; i < kolumny; i++) { for (int j = 0; j < rzedy; j++) { tabelaProblemu[i, j] = new ZmiennaSudoku(kolejneDane[2][i * 9 + j]); } } ogr = new OgraniczeniaSudoku(this); heurystykaDoZmiennych = new HeurestykaProblemu(this); heurystykaDoZmiennych2 = new HeurystykaZmiennej(this); heurydtykaDlaWartosci = new HeurystykaWartosci(this); okreslDziedziny(); okreslDziedziny2(); /* Zmienna z = tabelaProblemu[1, 1]; * for(int i = 0; i < z.dziedzina.Count; i ++) * { * Console.Write(z.dziedzina[i] + " "); * } * Console.WriteLine(""); * for (int j = 0; j < z.dziedzina2.Count; j++) * { * Console.Write(z.dziedzina2[j] + " "); * } * Console.WriteLine("");*/ }
public void wybierzWartosciDlaZmiennej(Zmienna z) { for (int i = 0; i < 9; i++) { if (z.dziedzina.Contains(posortowaneWartosci[i])) { z.dziedzina2.Add(posortowaneWartosci[i]); } } }
public Jolka(String jolkaNapisem, String slowaNapisem) { String[] kolejneDane = jolkaNapisem.Split('\n'); kolumny = kolejneDane.Length; rzedy = kolejneDane[0].Length; // Console.WriteLine(kolumny + " " + rzedy); kolumny--; tabelaProblemu = new Zmienna[kolumny, rzedy]; for (int i = 0; i < kolumny; i++) { for (int j = 0; j < rzedy; j++) { tabelaProblemu[i, j] = new ZmiennaJolka(kolejneDane[i][j]); } } slowa = new List <String>(slowaNapisem.Split('\n')); ogr = new OgraniczeniaJolka(this); heurystykaDoZmiennych = new HeurestykaProblemu(this); okreslDziedziny(); }
public Tuple <Zmienna, Tuple <int, int> > dajZmienna() { indeksWKwadracie++; if (indeksWKwadracie == 9) { indeksWKwadracie = 0; indeksWSudokuOgolnie++; if (indeksWSudokuOgolnie == 9) { return(null); } // Console.WriteLine(indeksWSudokuOgolnie); indeksWSudoku = posortowaneIndeksy [indeksWSudokuOgolnie]; } int x = (indeksWSudoku / 3) * 3 + indeksWKwadracie / 3; int y = (indeksWSudoku % 3) * 3 + indeksWKwadracie % 3; //Console.WriteLine(indeksWSudokuOgolnie + " " + indeksWSudoku+ " " + indeksWKwadracie + " " + x + " " + y); Zmienna zmiennaNaTeraz = sudoku.tabelaProblemu[x, y]; return(new Tuple <Zmienna, Tuple <int, int> >(zmiennaNaTeraz, new Tuple <int, int>(x, y))); }
public void ustalDziedzineZmiennejWgHeusrystyki(Zmienna z, int x, int y) { licznoscWartosciWRzedach = new List <int>(new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0 }); licznoscWartosciWRzedachPosortowana = new List <int>(new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0 }); posortowaneWartosci = new List <int>(); wypelnijListy(x, y); licznoscWartosciWRzedachPosortowana.Sort(); sortujWartosci(); wybierzWartosciDlaZmiennej(z); /* if(x == 3 && y == 4) * { * for (int i = 0; i < 9; i++) * { * Console.Write(licznoscWartosciWRzedach[i] + " "); * } * Console.WriteLine(""); * for (int j = 0; j < 9; j++) * { * Console.Write(posortowaneWartosci[j] + " "); * } * Console.WriteLine(""); * }*/ }