Hi Andreas - erst einmal: Danke! Spannende Fragen!
Prüfst Du auch dann, wenn der Computer noch einen Zug machen konnte, aber der Spieler nicht?
Wenn nein, warum nicht?
Ich bin nicht ganz sicher, ob ich Deine Fragen richtig verstanden habe - zur Beantwortung stelle ich folgende zwei Situationen nach (.=leeres Feld, o=schwarz, x=weiss; vgl. Links):
Situation 1:
.xooooox
........
........
........
........
........
........
........
Blockadenreihenfolge Computer-Spieler: Hier kann der Spieler (schwarz) noch einen letzten Zug machen, danach meldet der Computer: Kein Zug mehr möglich. Der Spieler erkennt, dass er ebenfalls nicht mehr ziehen kann, und klickt "Pass". Daraufhin ist die Partie zu Ende, das Ergebnis (gewonnen mit 7:1) wird ausgeworfen.
Situation 2:
ooooooox
........
........
........
........
........
........
........
Blockadenreihenfolge Spieler-Computer: Dieselbe Situation, einen Zug später - hier meldet der Spieler mittels "Pass", dass er nicht mehr ziehen kann. Darauf erkennt der Computer, dass er ebenfalls blockiert ist, und wieder ist die Partie mit 7:1 zu Ende.
Wenn Du diese Prüfung immer machst, kannst Du auch dem menschlichen User gleich mitteilen, daß er nicht ziehen kann ...
Das ist natürlich wahr. Richtig ist, dass ich eine Zugmöglichkeitsprüfung nur computerseitig vornehme; der Spieler muss immer selbst beurteilen (und nachprüfen), ob er noch ziehen kann oder ob er blockiert ist. Diese (auch spielerseitige) Prüfung werde ich nachholen. Danke!
Und ja, die Spielstärke ist nicht allzu hoch.
Auch hier: Stattgegeben. Zur Zeit liegt das noch daran, dass ich selbst von Reversi im Grunde nicht die leiseste Ahnung habe - mich schlägt mein Skript noch jedes dritte Mal. Aber ich werd' mich schlauer machen und die Skriptstrategie verfeinern müssen, den genannten negativen User-Reaktionen zum Trotz.
Herzlich, twb