Ejemplo n.º 1
0
        /// <summary>
        /// Betömoríti az utasítássorozatot.
        /// </summary>
        /// <returns>Tömorített utasítássorozat.</returns>
        public string Tomorit()
        {
            // Kezdetben a tömörített utasítássorozat üres.
            string tomoritett = "";

            // Végigmegyünk az utasításokon.
            for (int i = 0; i < utasitasok.Count; i++)
            {
                // Eltráoljuk az akutális irányt
                Irany aktualis = utasitasok[i];

                // j index, ami az i utáni elemre mutat.
                int j = i + 1;
                // Cikluas amíg a j nem indexel túl és a j-edik elem megegyezik az i-edikkel.
                while (j < utasitasok.Count && aktualis == utasitasok[j])
                {
                    // Növeljük a j értékét.
                    j++;
                }

                // Ha a j értéke nem egyezik meg az i+1-gyek, akkor találunk még ugyanolyan
                // utasítást.
                if (j != i + 1)
                {
                    // Beleírjuk, hogy mennyit.
                    tomoritett += j - i;
                    // i értékét j-re állítjuk, hogy a j+1-edik elemtől folytatódjon.
                    i = j - 1;
                }
                // Beleírjuk az irány betűjét.
                tomoritett += aktualis.ToString();
            }

            return(tomoritett);
        }
Ejemplo n.º 2
0
        static void kiir(string szoveg, Irany irany)
        {
            switch (irany)
            {
            case Program.Irany.JOBBRA:
                for (int i = 0; i < TEXTBOX_X - szoveg.Length; i++)
                {
                    Console.Write(" ");
                }
                Console.WriteLine(szoveg);
                break;

            case Program.Irany.KOZEPRE:
                for (int i = 0; i < TEXTBOX_X / 2 - szoveg.Length / 2; i++)
                {
                    Console.Write(" ");
                }
                Console.WriteLine(szoveg);
                break;

            default:
                Console.WriteLine(szoveg);
                break;
            }
        }
        public void Atvalt(Irany irany, int osszeg, out double eredmeny)
        {
            eredmeny = 0;
            switch (irany)
            {
            case Irany.FtEur:
                eredmeny = osszeg / EurErteke; break;

            case Irany.EurFt:
                eredmeny = osszeg * EurErteke; break;
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Metódus koordináta mozgatására, a megadott irányba.
        /// </summary>
        /// <param name="irany">Mozgatás iránya.</param>
        public void Mozgat(Irany irany)
        {
            switch (irany)
            {
            case Irany.E:
                y++; break;

            case Irany.K:
                x++; break;

            case Irany.N:
                x--; break;

            case Irany.D:
                y--; break;
            }
        }