@@Felix Riesterer:
nuqneH
Das Spiel erspart Dir diesen Verlust, indem es den Schlagzwang umsetzt.
Das sollte es IMHO nicht tun.
Und der Programmieraufwand explodiert.
Nö, wieso?
Du hast einerseits den Algorithmus, um alle Figuren, mit denen der menschlicher Spieler ziehen kann, blinken zu lassen. Andererseits hast du den Algorithmus, bei einer Schlagmöglichkeit* nur die schlagenge Figur ziehen zu lassen.
Lass doch auch bei Schlagmöglichkeit alle Figuren blinken. Nachdem der Spieler mit einer von diesen gezogen hat, prüfst du, ob es die war, mit der er hätte schlagen können, andernfalls wird gepustet.
Ist doch alles schon da; explodierenden Aufwand sehe ich nicht.
* Was ist eigentlich, wenn mehrere Figuren eine schlagen können?
Im Gegenzug sollte ein vom Computer gesteuerter Spieler dann vielleicht auch mit einer gewissen Wahrscheinlichkeit ein Schlagen übersehen können.
Klar, warum sollte man sich mit weniger Funktionalität zufrieden geben?
Gelle? ;-)
Wobei sich erstmal die Frage stellt, wie der Computer spielen soll: möglichst gut oder möglichst menschlich? Auch das könnte dann als Option „Spielstärke“ einstellbar sein.
Den Algorithmus zufällig eine der möglichen Figuren zum Ziehen auswählen zu lassen, erfüllt aber weder das eine noch das andere Kriterium. Sinnvoller dürfte es sein, bei mehreren Möglichkeiten mit der Figur zu ziehen, die schon am weitesten ist, um sie schnell ins Ziel zu bringen. Das macht deinen Algorithmus nicht komplizierter, aber vermutlich besser.
Und wie gesagt, nicht auf das Startfeld eines anderen zu gehen, wenn’s nicht sein muss, und dies schnellstmöglich zu verlassen, sollte recht einfach zu implmentieren sein.
Qapla'
Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
(Mark Twain)