Exemple #1
0
        public Babu GetKiraly()
        {
            int i = -1;

            foreach (var item in Babuk)
            {
                if (item.tipus == BabuTipus.kiraly)
                {
                    i = Babuk.IndexOf(item);
                }
            }
            return(Babuk.ElementAt(i));
        }
Exemple #2
0
        private void ExecuteStepCommand()
        {
            if (Input == null || Input.Length != 4)
            {
                ErroMessage = "Invalid input érték.";
                return;
            }

            // Az input szétszedése 2 darabra
            var first = Input[0].ToString() + Input[1].ToString();
            var last  = Input[2].ToString() + Input[3].ToString();

            // a kezdő pozicióban levő bábu kiszedése a listából
            var elsoFel = Babuk.FirstOrDefault(x => x.BabuPozicio == first);

            // a második pozicióban levő bábu kiszedése a listából (ez lehet null, ekkor nincs ott bábu)
            var masodikFel = Babuk.FirstOrDefault(p => p.BabuPozicio == last);

            // ha az első pozición van bábu
            if (elsoFel == null)
            {
                ErroMessage = "Hibás lépés. :S ";
                return;
            }
            // ha az elso pozicioban levő bábu szine nem egyezik meg azzal, amivel most lépni kell, akkor hibüzenet és visszatérés
            if (elsoFel.BabuSzine != LepesSzine)
            {
                ErroMessage = "Nem megfelelő a szín.";
                return;
            }
            // ha a bábu célpoziciója (last) nem jó, akkor hiba. megengedett értéktartomány "a-h" és "1-8"
            if (last[0] > 'h' || last[0] < 'a' || last[1] > '8' || last[1] < '1')
            {
                ErroMessage = "Leléptél a tábláról.";
                return;
            }

            // Ha a második pozicióban is van bábu és a színe megegyezik a kezdő színével akkor hibaüzenet
            if (masodikFel != null && masodikFel.BabuSzine == elsoFel.BabuSzine)
            {
                ErroMessage = "Hiba van, megegyeztnek a színek.";
                return;
            }

            // ** ha az első bábuval nem lehet lépni, akkor hibaüzenet és visszatérés.
            // ** pl a bástyával nem lehet a1-ről b2-re lépni.
            if (elsoFel.Lephete(first, last) == false)
            {
                ErroMessage = "Nem léphetsz így.";
                return;
            }


            // Ha a második pozicióban van bábu és más a színe akkor második bábut törölni kell a listából
            if (masodikFel != null && masodikFel.BabuSzine != elsoFel.BabuSzine)
            {
                Babuk.Remove(masodikFel);
            }

            // bábu mozgatása
            elsoFel.BabuPozicio = last;

            // a lépés színe változzon meg az elentétesre (fehér->fekete, fekete->fehér
            LepesSzine = !LepesSzine;
        }