Ich erstelle ein Schachspiel, ich habe bereits die Turmspitzen und die des Bischofs erstellt und ich beginne gerade damit, das Königinstück zu erschaffen. Das Problem ist, dass die Dame die Züge des Turms und des Bischofs kombiniert, also möchte ich keinen repetitiven Code schreiben und stattdessen nur die 2 Klassen für Turm und Läufer verwenden und sie sind Methoden in die Dame eins.Wie kombiniert man 2 Methoden aus 2 Klassen, die von 1 Base abgeleitet sind?
Hier ist der Bischof Klasse
public class OficerPiece : Figure
{
public OficerPiece(FigureDefinition definition) : base(definition)
{
}
protected override List<Tuple<int, int>> GetValidTurns()
{
//here i set the valid moves
}
}
Die Saatkrähe Klasse im Grunde das gleiche, aber mit unterschiedlichen Umsetzung der in meinem Projekt GetValidTurns()
Jedes einzelne Stück erbt die Figure
abstrakte Klasse ist die Info, dass jedes Stück enthält verwendet den einzigen Unterschied ist in der Methode, so dass wir das für die abgeleitete Klasse zu implementieren lassen.
, dass die Königin Klasse
public class Kralica : Figure
{
public Kralica(FigureDefinition definition) : base(definition)
{
}
protected override List<Tuple<int, int>> GetValidTurns()
{
//here i want to combine the 2 methods GetValidTurns from the bishop class and the rook class
}
}
Ich kann zum Beispiel dort die gültigen Turmdrehungen nicht implementieren, weil sie auch von der Klasse 'Figure' erben müssen, da sie wesentliche Funktionen enthält, um zu überprüfen, ob eine Runde gültig ist. – PreqlSusSpermaOhranitel
Sie können die Figure-Klasse mit dem ValidTurns-Konstruktor oder mit den Funktionsparametern übergeben. Und vielleicht möchten Sie auch in dieser ValidTurn-Klasse die andere Logik Ihrer Runde validieren (siehe Prinzip der Einzelverantwortung). – natschz
Können Sie Ihre Antwort bearbeiten, damit Sie mir zeigen können, wie das geht? Ich spreche über den Konstruktor mit dem Parameter – PreqlSusSpermaOhranitel