Babu IdeiglenesLeut(int x, int y, bool aktualisjatekos) { Babu temp = null; if (aktualisjatekos) { foreach (var item in fekete.Babuk) { if (item.Xpozicio == x && item.Ypozicio == y) { temp = item; } } if (temp != null) { fekete.Babuk.Remove(temp); } } else { foreach (var item in feher.Babuk) { if (item.Xpozicio == x && item.Ypozicio == y) { temp = item; } } if (temp != null) { feher.Babuk.Remove(temp); } } return(temp); }
private bool SakkMattCheck(bool aktualisjatekos) { Babu temp = null; bool sakkmatt = false; bool sakk = false; if (aktualisjatekos) { temp = feher.GetKiraly(); sakk = feher.sakk; } else { temp = fekete.GetKiraly(); sakk = fekete.sakk; } if (sakk) { List <Point> kiralyLehetsegesLepesek = temp.LehetsegesLepesek(table.Table); foreach (var item in kiralyLehetsegesLepesek) { if (!SakkbaLep((int)item.X, (int)item.Y, temp, aktualisjatekos)) { return(false); } } if (aktualisjatekos) { foreach (var item in feher.Babuk) { List <Point> babuLepesei = item.LehetsegesLepesek(table.Table); foreach (var lepes in babuLepesei) { if (!SakkbaLep((int)lepes.X, (int)lepes.Y, item, aktualisjatekos)) { return(false); } } } } else { foreach (var item in fekete.Babuk) { List <Point> babuLepesei = item.LehetsegesLepesek(table.Table); foreach (var lepes in babuLepesei) { if (!SakkbaLep((int)lepes.X, (int)lepes.Y, item, aktualisjatekos)) { return(false); } } } } sakkmatt = true; } return(sakkmatt); }
Point IdeigLenesenMozgat(Babu babu, Point to, int [,] tabla) { Point honnan = new Point(babu.Xpozicio, babu.Ypozicio); tabla[babu.Xpozicio, babu.Ypozicio] = 0; babu.Xpozicio = (int)to.X; babu.Ypozicio = (int)to.Y; tabla[babu.Xpozicio, babu.Ypozicio] = (int)babu.tipus * (int)babu.Szin; return(honnan); }
public bool SakkTesz(Babu kiraly, int[,] palya) { bool sakk = false; foreach (var item in Babuk) { if (item.LehetsegesLepes(kiraly.Xpozicio, kiraly.Ypozicio, palya)) { sakk = true; } } return(sakk); }
bool SakkbaLep(int x, int y, Babu babu, bool aktualisjatekos) { bool megmindigSakk = true; int tempx = babu.Xpozicio; int tempy = babu.Ypozicio; babu.Xpozicio = x; babu.Ypozicio = y; int[,] temp = Util.CreateTemp(Table.Table); temp[tempx, tempy] = 0; temp[x, y] = (int)babu.tipus * (int)babu.Szin; Babu ideiglenesenLeutott = IdeiglenesLeut(x, y, aktualisjatekos); if (aktualisjatekos) { if (fekete.SakkTesz(feher.GetKiraly(), temp)) { megmindigSakk = true; } else { megmindigSakk = false; } if (ideiglenesenLeutott != null) { fekete.Babuk.Add(ideiglenesenLeutott); } } else { if (feher.SakkTesz(fekete.GetKiraly(), temp)) { megmindigSakk = true; } else { megmindigSakk = false; } if (ideiglenesenLeutott != null) { feher.Babuk.Add(ideiglenesenLeutott); } } babu.Xpozicio = tempx; babu.Ypozicio = tempy; return(megmindigSakk); }
int Kereses(int szint, int[,] tabla, bool ai) { if (szint == 0) { return(tablaKiertekel(tabla)); } if (ai) { int legjobbErtek = 9999; foreach (var item in this.Babuk) { foreach (var lepes in item.LehetsegesLepesek(tabla)) { Babu temp = IdeiglenesLeut((int)lepes.X, (int)lepes.Y, ellenfel); Point honnan = IdeigLenesenMozgat(item, lepes, tabla); int ertek = Kereses(szint - 1, tabla, !ai); ertek += szint; if (legjobbErtek > ertek) { legjobbErtek = ertek; vegsolepes = lepes; vegsoLepo = item; } visszaAllit(item, temp, honnan, tabla, ellenfel); } } return(legjobbErtek); } else { int legjobbErtek = -9999; foreach (var item in ellenfel.Babuk) { foreach (var lepes in item.LehetsegesLepesek(tabla)) { Babu temp = IdeiglenesLeut((int)lepes.X, (int)lepes.Y, this); Point honnan = IdeigLenesenMozgat(item, lepes, tabla); int ertek = Kereses(szint - 1, tabla, !ai); if (legjobbErtek < ertek) { legjobbErtek = ertek; } visszaAllit(item, temp, honnan, tabla, this); } } return(legjobbErtek); } }
Babu IdeiglenesLeut(int x, int y, Jatekos feher) { Babu temp = null; foreach (var item in feher.Babuk) { if (item.Xpozicio == x && item.Ypozicio == y) { temp = item; } } if (temp != null) { temp.aktiv = false; } return(temp); }
void visszaAllit(Babu visszamozgat, Babu leutott, Point hova, int[,] tabla, Jatekos jatekos) { int tempx = visszamozgat.Xpozicio; int tempy = visszamozgat.Ypozicio; visszamozgat.Xpozicio = (int)hova.X; visszamozgat.Ypozicio = (int)hova.Y; tabla[(int)hova.X, (int)hova.Y] = (int)visszamozgat.tipus * (int)visszamozgat.Szin; if (leutott != null) { leutott.aktiv = true; tabla[tempx, tempy] = (int)leutott.tipus * (int)leutott.Szin; } else { tabla[tempx, tempy] = 0; } }