Hallo zusammen
Ich programmiere gerade ein Mühlespiel und habe ein Riesenproblem mit der Programmarchitektur. Ich habe eine Klasse "Game" welche das Spielbrett sowie die Steine repräsentiert und hauptsächlich zwei Methode "isMoveValid" und "move" bereitstellt. Schliesslich habe ich eine abstrakte Klasse Player, von welcher dann HumanPlayer, RandomPlayer sowie AIPlayer abgeleitet werden. Das Ziel ist, dass ich jeden Typ Player gegen jeden anderen Typ Player spielen lassen kann. Also HumanPlayer gegen AIPlayer, AIPlayer gegen AIPlayer usw. Ich hatte mir das ungefähr so vorgestellt:
while(true){
p1.nextMove();
p2.nextMove();
}
Wenn ich RandomPlayer gegen RandomPlayer, AIPlayer gegen RandomPlayer oder AIPlayer gegen AIPlayer spielen lasse, funktioniert dies auch ganz gut. Das Problem ist nun der Humanplayer, weil der HumanPlayer anders als die beiden anderen Spieltypen ja nicht einfach einen Algorithums abarbeitet und schliesslich zurückkehrt, sondern stattdessen auf Benutzereingaben wartet.
Vielleicht kennt jemand von euch das Problem und kann mir einen Tipp geben?
Mfg Ishildur
Ich programmiere gerade ein Mühlespiel und habe ein Riesenproblem mit der Programmarchitektur. Ich habe eine Klasse "Game" welche das Spielbrett sowie die Steine repräsentiert und hauptsächlich zwei Methode "isMoveValid" und "move" bereitstellt. Schliesslich habe ich eine abstrakte Klasse Player, von welcher dann HumanPlayer, RandomPlayer sowie AIPlayer abgeleitet werden. Das Ziel ist, dass ich jeden Typ Player gegen jeden anderen Typ Player spielen lassen kann. Also HumanPlayer gegen AIPlayer, AIPlayer gegen AIPlayer usw. Ich hatte mir das ungefähr so vorgestellt:
while(true){
p1.nextMove();
p2.nextMove();
}
Wenn ich RandomPlayer gegen RandomPlayer, AIPlayer gegen RandomPlayer oder AIPlayer gegen AIPlayer spielen lasse, funktioniert dies auch ganz gut. Das Problem ist nun der Humanplayer, weil der HumanPlayer anders als die beiden anderen Spieltypen ja nicht einfach einen Algorithums abarbeitet und schliesslich zurückkehrt, sondern stattdessen auf Benutzereingaben wartet.
Vielleicht kennt jemand von euch das Problem und kann mir einen Tipp geben?
Mfg Ishildur