// szint = hely private bool ft(int szint, int szam) { // az eredeti értékekhez képest vizsgál int i = 0; while (i < fixMezok.Length && !(tabla[fixMezok[i].Sor, fixMezok[i].Oszlop] == szam && Pozicio.Kizaroak(fixMezok[i], uresMezok[szint])) ) { i++; } return(!(i < fixMezok.Length)); }
void CreatePositions() { int DB = 0; for (int i = 0; i < tabla.GetLength(0); i++) { for (int j = 0; j < tabla.GetLength(1); j++) { if (tabla[i, j] != 0) { DB++; } } } fixMezok = new Pozicio[DB]; N = tabla.GetLength(0) * tabla.GetLength(1) - DB; uresMezok = new Pozicio[N]; int DBF = 0; int DBU = 0; for (int i = 0; i < tabla.GetLength(0); i++) { for (int j = 0; j < tabla.GetLength(1); j++) { if (tabla[i, j] != 0) { fixMezok[DBF++] = new Pozicio(i, j); } else { uresMezok[DBU++] = new Pozicio(i, j); } } } }
public static bool Kizaroak(Pozicio p1, Pozicio p2) { return(p1.Sor == p2.Sor || p1.Oszlop == p2.Oszlop || (p1.Sor / 3 == p2.Sor / 3 && p1.Oszlop / 3 == p2.Oszlop / 3)); }
// szint = hova // i = mit // k = k.előző // kszam k.előző értéke private bool fk(int szint, int i, int k, int kszam) { // általunk beírtak szerint vizsgál return(!(i == kszam && Pozicio.Kizaroak(uresMezok[szint], uresMezok[k]))); }