mirror of
https://github.com/TwoFX/Morris.git
synced 2025-12-13 08:22:51 +00:00
Fixes
This commit is contained in:
@@ -317,10 +317,6 @@ namespace Morris
|
||||
// Hinbewegter Stein
|
||||
Board[move.To] = (Occupation)NextToMove;
|
||||
|
||||
// Wiederholte Stellung
|
||||
if (!playerPhase.Values.All(phase => phase == Phase.Placing) && history.Any(pastBoard => Board.SequenceEqual(pastBoard)))
|
||||
Result = GameResult.Draw;
|
||||
|
||||
// ggf. entfernter Stein
|
||||
if (move.Remove.HasValue)
|
||||
{
|
||||
@@ -330,6 +326,11 @@ namespace Morris
|
||||
playerPhase[NextToMove.Opponent()] = Phase.Flying;
|
||||
}
|
||||
|
||||
// Wiederholte Stellung
|
||||
if (!playerPhase.Values.All(phase => phase == Phase.Placing) && history.Any(pastBoard => Board.SequenceEqual(pastBoard)))
|
||||
Result = GameResult.Draw;
|
||||
|
||||
|
||||
// Gegner hat nur noch zwei Steine
|
||||
if (playerPhase[NextToMove.Opponent()] != Phase.Placing && currentStones[NextToMove.Opponent()] == 2)
|
||||
Result = (GameResult)NextToMove;
|
||||
|
||||
@@ -352,7 +352,10 @@ namespace Morris
|
||||
// Ungültiges Feld, einfach einen ungültigen Zug zurückgeben, damit GetNextMove
|
||||
// erneut aufgerufen wird
|
||||
if (error)
|
||||
return null;
|
||||
{
|
||||
Dispatcher.Invoke(() => resetPositon(source));
|
||||
return null;
|
||||
}
|
||||
|
||||
// Source und Destination erhalten Anfang und Ende des Drag-Events
|
||||
mode = Mode.Normal;
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace Morris
|
||||
var a = new ConsoleInteraction();
|
||||
var b = new RandomBot();
|
||||
var w = new GameWindow();
|
||||
var g = new Game(w, w);
|
||||
var g = new Game(w, b);
|
||||
g.AddObserver(a);
|
||||
g.AddObserver(w);
|
||||
Task.Run(() => g.Run(0));
|
||||
|
||||
Reference in New Issue
Block a user