private void bepaalMensPositie() { // kijk naar welke positie de mens zijn schaakstuk heeft verplaats bool buurzuid = false; int zuidteller = 0; _vorigVakje = spel.Selected; while (buurzuid == false) { if (buurzuid == false && _vorigVakje != null) { _vorigVakje = _vorigVakje.Buren[2]; zuidteller++; } else { _positieZuid = zuidteller; buurzuid = true; } } bool buurwest = false; int westteller = 0; _vorigVakje = spel.Selected; // reset vakje while (buurwest == false) { if (buurwest == false && _vorigVakje != null) { _vorigVakje = _vorigVakje.Buren[3]; westteller++; } else { buurwest = true; _positieWest = westteller; } } // begin met het algoritme Algoritme Calgoritme = new Algoritme(this); algoritme = Calgoritme; }
public override void kanStukSlaan(Algoritme algoritme, Vakje geselecteerdStuk) { // Deze methode kijkt vanuit de computer of er een pion geslagen kan worden. if (geselecteerdStuk.schaakstuk.Kleur == "zwart") { Vakje geselecteerdVak = geselecteerdStuk; if (geselecteerdVak.Buren[5] != null && geselecteerdVak.Buren[5].schaakstuk != null && geselecteerdVak.Buren[5].schaakstuk.Kleur == "wit") { algoritme.slaanmogelijkheden.Add(geselecteerdVak.Buren[5]); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } else if (geselecteerdVak.Buren[6] != null && geselecteerdVak.Buren[6].schaakstuk != null && geselecteerdVak.Buren[6].schaakstuk.Kleur == "wit") { algoritme.slaanmogelijkheden.Add(geselecteerdVak.Buren[6]); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } else { } } }
public override void kanStukSlaan(Algoritme algoritme, Vakje geselecteerdStuk) { // Deze methode kijkt vanuit de computer of er een koning geslagen kan worden. if (geselecteerdStuk.schaakstuk.Kleur == "zwart") { Vakje geselecteerdVak = geselecteerdStuk; // noord if (geselecteerdVak.Buren[7] != null && geselecteerdVak.Buren[7].schaakstuk != null && geselecteerdVak.Buren[7].schaakstuk.Kleur == "wit") { algoritme.slaanmogelijkheden.Add(geselecteerdVak.Buren[7]); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } else if (geselecteerdVak.Buren[0] != null && geselecteerdVak.Buren[0].schaakstuk != null && geselecteerdVak.Buren[0].schaakstuk.Kleur == "wit") { algoritme.slaanmogelijkheden.Add(geselecteerdVak.Buren[0]); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } else if (geselecteerdVak.Buren[4] != null && geselecteerdVak.Buren[4].schaakstuk != null && geselecteerdVak.Buren[4].schaakstuk.Kleur == "wit") { algoritme.slaanmogelijkheden.Add(geselecteerdVak.Buren[4]); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } // west else if (geselecteerdVak.Buren[3].Buren[0] != null && geselecteerdVak.Buren[3].Buren[0].schaakstuk != null && geselecteerdVak.Buren[3].Buren[0].schaakstuk.Kleur == "wit") { algoritme.slaanmogelijkheden.Add(geselecteerdVak.Buren[3].Buren[0]); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } else if (geselecteerdVak.Buren[3] != null && geselecteerdVak.Buren[3].schaakstuk != null && geselecteerdVak.Buren[3].schaakstuk.Kleur == "wit") { algoritme.slaanmogelijkheden.Add(geselecteerdVak.Buren[3]); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } else if (geselecteerdVak.Buren[3].Buren[2] != null && geselecteerdVak.Buren[3].Buren[2].schaakstuk != null && geselecteerdVak.Buren[3].Buren[2].schaakstuk.Kleur == "wit") { algoritme.slaanmogelijkheden.Add(geselecteerdVak.Buren[3].Buren[2]); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } // zuid else if (geselecteerdVak.Buren[6] != null && geselecteerdVak.Buren[6].schaakstuk != null && geselecteerdVak.Buren[6].schaakstuk.Kleur == "wit") { algoritme.slaanmogelijkheden.Add(geselecteerdVak.Buren[6]); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } else if (geselecteerdVak.Buren[2] != null && geselecteerdVak.Buren[2].schaakstuk != null && geselecteerdVak.Buren[2].schaakstuk.Kleur == "wit") { algoritme.slaanmogelijkheden.Add(geselecteerdVak.Buren[2]); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } else if (geselecteerdVak.Buren[5] != null && geselecteerdVak.Buren[5].schaakstuk != null && geselecteerdVak.Buren[5].schaakstuk.Kleur == "wit") { algoritme.slaanmogelijkheden.Add(geselecteerdVak.Buren[5]); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } // oost else if (geselecteerdVak.Buren[1].Buren[0] != null && geselecteerdVak.Buren[1].Buren[0].schaakstuk != null && geselecteerdVak.Buren[1].Buren[0].schaakstuk.Kleur == "wit") { algoritme.slaanmogelijkheden.Add(geselecteerdVak.Buren[1].Buren[0]); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } else if (geselecteerdVak.Buren[1] != null && geselecteerdVak.Buren[1].schaakstuk != null && geselecteerdVak.Buren[1].schaakstuk.Kleur == "wit") { algoritme.slaanmogelijkheden.Add(geselecteerdVak.Buren[1]); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } else if (geselecteerdVak.Buren[1].Buren[2] != null && geselecteerdVak.Buren[1].Buren[2].schaakstuk != null && geselecteerdVak.Buren[1].Buren[2].schaakstuk.Kleur == "wit") { algoritme.slaanmogelijkheden.Add(geselecteerdVak.Buren[1].Buren[2]); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } else { } } }
public abstract void kanStukSlaan(Algoritme algoritme, Vakje geselecteerdStuk);
public override void kanStukSlaan(Algoritme algoritme, Vakje geselecteerdStuk) { // Deze methode kijkt vanuit de computer of er een dame geslagen kan worden. if (geselecteerdStuk.schaakstuk.Kleur == "zwart") { // Kijkt of er noordwest geslagen kan worden bool mogelijkloop = false; Vakje volgendVakje = geselecteerdStuk.Buren[7]; while (mogelijkloop == false) { if (volgendVakje == null) { mogelijkloop = true; } else { if (volgendVakje != null && volgendVakje.schaakstuk != null && volgendVakje.schaakstuk.Kleur == "wit") { mogelijkloop = true; algoritme.slaanmogelijkheden.Add(volgendVakje); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } else if (volgendVakje.schaakstuk != null && volgendVakje.schaakstuk.Kleur == "zwart") { mogelijkloop = true; } volgendVakje = volgendVakje.Buren[7]; } } // Kijkt of er noordoost geslagen kan worden mogelijkloop = false; volgendVakje = geselecteerdStuk.Buren[4]; while (mogelijkloop == false) { if (volgendVakje == null) { mogelijkloop = true; } else { if (volgendVakje != null && volgendVakje.schaakstuk != null && volgendVakje.schaakstuk.Kleur == "wit") { mogelijkloop = true; algoritme.slaanmogelijkheden.Add(volgendVakje); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } else if (volgendVakje.schaakstuk != null && volgendVakje.schaakstuk.Kleur == "zwart") { mogelijkloop = true; } volgendVakje = volgendVakje.Buren[4]; } } // Kijkt of er Zuidwest geslagen kan worden mogelijkloop = false; volgendVakje = geselecteerdStuk.Buren[6]; while (mogelijkloop == false) { if (volgendVakje == null) { mogelijkloop = true; } else { if (volgendVakje != null && volgendVakje.schaakstuk != null && volgendVakje.schaakstuk.Kleur == "wit") { mogelijkloop = true; algoritme.slaanmogelijkheden.Add(volgendVakje); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } else if (volgendVakje.schaakstuk != null && volgendVakje.schaakstuk.Kleur == "zwart") { mogelijkloop = true; } volgendVakje = volgendVakje.Buren[6]; } } // Kijkt of er Zuidoost geslagen kan worden mogelijkloop = false; volgendVakje = geselecteerdStuk.Buren[5]; while (mogelijkloop == false) { if (volgendVakje == null) { mogelijkloop = true; } else { if (volgendVakje != null && volgendVakje.schaakstuk != null && volgendVakje.schaakstuk.Kleur == "wit") { mogelijkloop = true; algoritme.slaanmogelijkheden.Add(volgendVakje); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } else if (volgendVakje.schaakstuk != null && volgendVakje.schaakstuk.Kleur == "zwart") { mogelijkloop = true; } volgendVakje = volgendVakje.Buren[5]; } } // Kijkt of er Noord geslagen kan worden mogelijkloop = false; volgendVakje = geselecteerdStuk.Buren[0]; while (mogelijkloop == false) { if (volgendVakje == null) { mogelijkloop = true; } else { if (volgendVakje != null && volgendVakje.schaakstuk != null && volgendVakje.schaakstuk.Kleur == "wit") { mogelijkloop = true; algoritme.slaanmogelijkheden.Add(volgendVakje); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } else if (volgendVakje.schaakstuk != null && volgendVakje.schaakstuk.Kleur == "zwart") { mogelijkloop = true; } volgendVakje = volgendVakje.Buren[0]; } } // Kijkt of er West geslagen kan worden mogelijkloop = false; volgendVakje = geselecteerdStuk.Buren[3]; while (mogelijkloop == false) { if (volgendVakje == null) { mogelijkloop = true; } else { if (volgendVakje != null && volgendVakje.schaakstuk != null && volgendVakje.schaakstuk.Kleur == "wit") { mogelijkloop = true; algoritme.slaanmogelijkheden.Add(volgendVakje); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } else if (volgendVakje.schaakstuk != null && volgendVakje.schaakstuk.Kleur == "zwart") { mogelijkloop = true; } volgendVakje = volgendVakje.Buren[3]; } } // Kijkt of er Zuid geslagen kan worden mogelijkloop = false; volgendVakje = geselecteerdStuk.Buren[2]; while (mogelijkloop == false) { if (volgendVakje == null) { mogelijkloop = true; } else { if (volgendVakje != null && volgendVakje.schaakstuk != null && volgendVakje.schaakstuk.Kleur == "wit") { mogelijkloop = true; algoritme.slaanmogelijkheden.Add(volgendVakje); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } else if (volgendVakje.schaakstuk != null && volgendVakje.schaakstuk.Kleur == "zwart") { mogelijkloop = true; } volgendVakje = volgendVakje.Buren[2]; } } // Kijkt of er Oost geslagen kan worden mogelijkloop = false; volgendVakje = geselecteerdStuk.Buren[1]; while (mogelijkloop == false) { if (volgendVakje == null) { mogelijkloop = true; } else { if (volgendVakje != null && volgendVakje.schaakstuk != null && volgendVakje.schaakstuk.Kleur == "wit") { mogelijkloop = true; algoritme.slaanmogelijkheden.Add(volgendVakje); algoritme.slaanmogelijkhedenVanaf.Add(geselecteerdStuk); } else if (volgendVakje.schaakstuk != null && volgendVakje.schaakstuk.Kleur == "zwart") { mogelijkloop = true; } volgendVakje = volgendVakje.Buren[1]; } } } }