/* * Testen, ob die neue Reihe Valide ist (im Bereich von 1-8) */ protected bool reiheEinsBisAchtValide(int i, char reihe, GroesserKleiner groesserKleiner) { if (groesserKleiner == GroesserKleiner.Groesser) { return((char)(this.reihe + i) >= reihe); } return((char)(this.reihe + i) <= reihe); }
/* * Testen, ob die neue Spalte Valide ist (im Bereich von a-h) */ protected bool spalteAbisHvalide(int i, char spalte, GroesserKleiner groesserKleiner) { if (groesserKleiner == GroesserKleiner.Groesser) { return((char)(this.spalte + i) >= spalte); } return((char)(this.spalte + i) <= spalte); }
// Hier werden der Liste der moeglichen Zuege die Reihen hinzugefuegt // (Y Achse) // Selbes Prinzip wie spaltenHinzufuegen protected void reihenHinzufuegen(int richtung, char grenze, GroesserKleiner bedingung, List <string> listMoeglicheZuege) { while (this.reiheEinsBisAchtValide(richtung, grenze, bedingung)) { if (this.figurImWegEigeneFarbe(this.feldName(0, richtung))) { break; } if (figurImWegAndereFarbe(this.feldName(0, richtung))) { listMoeglicheZuege.Add(this.feldName(0, richtung)); this.setSpalteReihe(0, richtung); break; } listMoeglicheZuege.Add(this.feldName(0, richtung)); this.setSpalteReihe(0, richtung); } }
// Hier werden der List der moegliczhen zuege die Spalten hinzugefuegt // (X Achse) // protected void spaltenHinzufuegen(int richtung, char grenze, GroesserKleiner bedingung, List <string> listMoeglicheZuege) { while (this.spalteAbisHvalide(richtung, grenze, bedingung)) { // Ist eine Figur der eigenen Farbe auf einem Feld im Weg if (this.figurImWegEigeneFarbe(this.feldName(richtung, 0))) { break; } // Wenn eine Figur der anderen Farbe im wege ist, // dann danach aufhoeren, da dies die Grenze ist, wie weit gezogen // werden darf if (figurImWegAndereFarbe(this.feldName(richtung, 0))) { listMoeglicheZuege.Add(this.feldName(richtung, 0)); this.setSpalteReihe(richtung, 0); break; } listMoeglicheZuege.Add(this.feldName(richtung, 0)); this.setSpalteReihe(richtung, 0); } }
// Die Diagonalen Felder werden der Liste hinzugefuegt // Ebenfalls abfragen, ob auf dem naechsten Zug eine eigene Figur oder eine Gegnerische Fugur steht // protected void diagonaleZeugeHinzufuegen(int richtungAbisH, char grenzeAbisH, GroesserKleiner bedingungAbisH, int richtungEinsBisAcht, char grenzeEinsBisAcht, GroesserKleiner bedingungEinsBisAcht, List <string> listMoeglicheZuege) { while (this.spalteAbisHvalide(richtungAbisH, grenzeAbisH, bedingungAbisH) && this.reiheEinsBisAchtValide(richtungEinsBisAcht, grenzeEinsBisAcht, bedingungEinsBisAcht)) { if (figurImWegEigeneFarbe(this.feldName(richtungAbisH, richtungEinsBisAcht))) { break; } if (figurImWegAndereFarbe(this.feldName(richtungAbisH, richtungEinsBisAcht))) { listMoeglicheZuege.Add(this.feldName(richtungAbisH, richtungEinsBisAcht)); this.setSpalteReihe(richtungAbisH, richtungEinsBisAcht); break; } listMoeglicheZuege.Add(this.feldName(richtungAbisH, richtungEinsBisAcht)); this.setSpalteReihe(richtungAbisH, richtungEinsBisAcht); } }