public Babu GetKiraly() { int i = -1; foreach (var item in Babuk) { if (item.tipus == BabuTipus.kiraly) { i = Babuk.IndexOf(item); } } return(Babuk.ElementAt(i)); }
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; }