예제 #1
0
        public ActionResult Start()
        {
            // Felületek példányosítása.
            LapKeszito lk = new LapKeszito();

            // Forgatások mátrix példányosítása.
            Console.WriteLine("forgat:");
            Forgato forgatasok = new Forgato();

            // Pálya példányosítása.
            Console.WriteLine("palya:");
            PalyaKeszito palyakeszito = new PalyaKeszito();

            // Megoldáshoz szükséges osztály példányosítása és a Backtrack futtatása.
            Megoldas mo = new Megoldas(lk.Feluletek, forgatasok.Forgatasok, palyakeszito.Palya);

            mo.Backtrack();

            // Létrehozzuk a mezőket.
            Mezo[,] mezok = new Mezo[palyakeszito.Palya.GetLength(0), palyakeszito.Palya.GetLength(1)];

            // Mezőkhöz tartozó státuszokat hozzuk létre.
            string[,] allapotok = new string[palyakeszito.Palya.GetLength(0), palyakeszito.Palya.GetLength(1)];

            // Értékeket adunk a mezőknek és az állapotoknak, így megtudjuk, majd jeleníteni webes felületen.
            for (int y = 0; y < mezok.GetLength(0); y++)
            {
                for (int x = 0; x < mezok.GetLength(1); x++)
                {
                    int[] fonalak = new int[lk.Feluletek.GetLength(1)];
                    int   index   = palyakeszito.Palya[y, x];

                    for (int k = 0; k < fonalak.Length; k++)
                    {
                        fonalak[k] = lk.Feluletek[index, k];
                    }

                    switch (forgatasok.Forgatasok[index])
                    {
                    case 1:
                        allapotok[y, x] = "forgat90";
                        break;

                    case 2:
                        allapotok[y, x] = "forgat180";
                        break;

                    case 3:
                        allapotok[y, x] = "forgat270";
                        break;
                    }

                    mezok[y, x] = new Mezo(fonalak, "/Images");
                }
            }

            return(this.View("Rubik", new HomeModel(mezok, allapotok)));
        }
예제 #2
0
        /// <summary>
        /// Main metódus, ebben példányosítom a feladathoz szükséges osztályokat.
        /// string[] args-ot nem használtam fel az egész solution alatt.
        /// </summary>
        /// <param name="args">Bejövő paraméterek</param>
        public static void Main(string[] args)
        {
            // Felületek példányosítása
            LapKeszito lk = new LapKeszito();

            LapKeszito.Kiiras(lk.Feluletek);

            // Forgatások mátrix példányosítása
            Console.WriteLine("forgat:");
            Forgato forgatasok = new Forgato();

            Forgato.Kiiras(forgatasok.Forgatasok);

            // Pálya példányosítása
            Console.WriteLine("palya:");
            PalyaKeszito palyakeszito = new PalyaKeszito();

            PalyaKeszito.Kiiras(palyakeszito.Palya);

            // Megoldáshoz szükséges osztály példányosítása és a Backtrack futtatása
            Megoldas mo = new Megoldas(lk.Feluletek, forgatasok.Forgatasok, palyakeszito.Palya);

            mo.Backtrack();
        }