示例#1
0
        // 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));
        }
示例#2
0
        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);
                    }
                }
            }
        }
示例#3
0
 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));
 }
示例#4
0
 // 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])));
 }