Esempio n. 1
0
        static void Main(string[] args)
        {
            var ranglistaViewModel = new RanglistaViewModel();
            var jatekosViewModel   = new JatekosViewModel();

            jatekos = jatekosViewModel.Jatekos;
            var palyaView = new PalyaViewModel(jatekosViewModel.Jatekos);
            var idoMero   = new Timer(1000);

            idoMero.Elapsed         += IdoMero_Mulas;
            JatekKezdetenekIdoPontja = DateTime.Now;
            idoMero.Start();

            while (ElteltIdo.TotalMilliseconds <= jatekos.Jatekido)
            {
                palyaView.Leptetes();
            }

            ranglistaViewModel.UjJatekeredmenyHozzaadasa(jatekos);

            Console.WriteLine();
            ranglistaViewModel.RanglistaKiirasa();

            Console.Read();
        }
Esempio n. 2
0
        /// <summary>
        /// Adott sorIndex-től felfele a Palya beállításaihoz mérten null-ra állítja a játékos számára pontokat érő golyókat (és pontokat is ad a jétékosnak)
        /// </summary>
        /// <param name="palya"></param>
        /// <param name="palyaBeallitasok"></param>
        /// <param name="jatekos"></param>
        /// <param name="sorIndex"></param>
        /// <returns></returns>
        int AzonosSzinuGolyokEltuntetese(Palya palyaBeallitasok, Jatekos jatekos, int sorIndex)
        {
            Golyo[,] palya = palyaBeallitasok.Jatekter;

            int oszlopokSzama             = palya.GetLength(1),
                legalsoModositottSorIndex = 0;

            for (int x = sorIndex; x >= 0; x--)
            {
                for (int y = oszlopokSzama - 1; y >= 0; y--)
                {
                    int azonosSzinuGolyok = MegszamlalasTetel(palya, x, y);

                    if (azonosSzinuGolyok >= palyaBeallitasok.MinEgyszinuGolyokSzama)
                    {
                        jatekos.Pontszam += azonosSzinuGolyok;

                        PontokatEroGolyokEltuntetese(x, y, azonosSzinuGolyok);

                        if (legalsoModositottSorIndex == 0)
                        {
                            legalsoModositottSorIndex = x;
                        }
                    }

                    y -= azonosSzinuGolyok - 1;
                }
            }

            return(legalsoModositottSorIndex);
        }
        /// <summary>
        /// Új játékos hozzáadása a ranglistához, majd ranglista rendezése, illetve mentése adattárolóra
        /// </summary>
        /// <param name="jatekos"></param>
        public void UjJatekeredmenyHozzaadasa(Jatekos jatekos)
        {
            ranglista.Add(jatekos);

            JavitottBeillesztesesRendezes(ranglista);

            RanglistaMenteseFajlba();
        }
Esempio n. 4
0
        public PalyaViewModel(Jatekos jatekos)
        {
            Jatekos = jatekos;

            Palya = new Palya(Jatekos.SorokSzama, Jatekos.OszlopokSzama);
            PalyaFeltolteseSzinesGolyokkal();

            PalyaView = new PalyaView(Palya.Jatekter);
        }
Esempio n. 5
0
        /// <summary>
        /// Ranglista kiíratása a képernyőre
        /// </summary>
        public void UiFrissitese()
        {
            Console.WriteLine("{0, 5}{1, 20}{2, 10}{3, 10}", "#", "Név", "Játékidő", "Pontszám");

            for (int i = 0; i < Ranglista.Count; i++)
            {
                Jatekos jatekos = Ranglista[i];

                Console.WriteLine("{0, 5}{1, 20}{2, 10}{3, 10}", (i + 1), jatekos.Nev, jatekos.Jatekido, jatekos.Pontszam);
            }
        }
Esempio n. 6
0
        public JatekosViewModel()
        {
            View = new JatekosView();

#if DEBUG
            string jatekosNeve     = "PoLáKoSz";
            int    jatekidoPercben = 2;
            int    sorokSzama      = 5;
            int    oszlopokSzama   = 10;
#else
            string jatekosNeve     = View.JatekosnevBekerese();
            int    jatekidoPercben = View.JatekidoBekerese();
            int    sorokSzama      = View.SorokBekerese();
            int    oszlopokSzama   = View.OszlopokBekerese();
#endif

            Jatekos = new Jatekos(jatekosNeve, jatekidoPercben * 60 * 1000, sorokSzama, oszlopokSzama);
        }
        /// <summary>
        /// Ranglista a játék időtartama és azon belül a játékos pontszáma szerinti rendezése
        /// Lista első helyére kerül a leghosszabb ideig játszó, legtöbb pontot elért játékos
        /// </summary>
        /// <param name="x"></param>
        void JavitottBeillesztesesRendezes(List <Jatekos> x)
        {
            for (int i = 1; i < x.Count; i++)
            {
                int     j     = i - 1;
                Jatekos seged = x[i];

                while ((j >= 0) &&
                       (x[j].Jatekido < seged.Jatekido ||
                        (x[j].Jatekido == seged.Jatekido && x[j].Pontszam < seged.Pontszam)))
                {
                    x[j + 1] = x[j];
                    j--;
                }

                x[j + 1] = seged;
            }
        }
        void KorabbiRanglistaBetolteseFajlbol()
        {
            string[] sorok = txtFajlmuveletek.FajlSorainakBeolvasasa();

            if (sorok.Length == 0)
            {
                ranglista = new List <Jatekos>();
            }
            else
            {
                ranglista = new List <Jatekos>();

                foreach (string sor in sorok)
                {
                    ranglista.Add(Jatekos.Parse(sor));
                }
            }
        }
Esempio n. 9
0
        public override bool Equals(object obj)
        {
            if (obj == null ||
                obj.GetType() != typeof(Jatekos))
            {
                return(false);
            }

            Jatekos jatekos2 = (Jatekos)obj;

            if (!Nev.Equals(jatekos2.Nev) ||
                Jatekido != jatekos2.Jatekido ||
                SorokSzama != jatekos2.SorokSzama ||
                OszlopokSzama != jatekos2.OszlopokSzama ||
                Pontszam != jatekos2.Pontszam)
            {
                return(false);
            }

            return(true);
        }