Пример #1
0
        public bool kitölt(int szam)
        {
            // a kapott számot beírjuk a következő üres cellába
            if (!preKitolt(szam))
            {
                return(false);
            }

            BuvosKeresztAllapot ujAllapot = new BuvosKeresztAllapot();

            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    if (tabla[i, j] == 0)
                    {
                        this.x           = i;
                        this.y           = j;
                        this.tabla[x, y] = szam;
                        ujAllapot.tabla  = (int[, ]) this.tabla.Clone();
                        //Console.WriteLine(next.ToString());
                        return(ÁllapotE());
                    }
                }
            }
            return(false);
        }
Пример #2
0
        static void Main(string[] args)
        {
            Csúcs      startCsúcs;
            GráfKereső kereső;

            AbsztraktÁllapot k = new BuvosKeresztAllapot();

            startCsúcs = new Csúcs(k);

            Console.WriteLine("A kereső egy 20 mélységi korlátos és emlékezetes backtrack.");
            kereső = new BackTrack(startCsúcs, 20, true);
            kereső.megoldásKiírása(kereső.Keresés());

            Console.ReadLine();
        }
Пример #3
0
        public override object Clone()
        {
            BuvosKeresztAllapot myClone = new BuvosKeresztAllapot();

            myClone.x = this.x;
            myClone.y = this.y;

            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    myClone.tabla[i, j] = this.tabla[i, j];
                }
            }

            return(myClone);
        }
Пример #4
0
        public override bool Equals(object a)
        {
            BuvosKeresztAllapot masik = (BuvosKeresztAllapot)a;

            bool tablakEgyenlok = true;

            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    if (this.tabla[i, j] != masik.tabla[i, j])
                    {
                        tablakEgyenlok = false;
                    }
                }
            }

            return(this.x == masik.x && this.y == masik.y && tablakEgyenlok);
        }