This commit is contained in:
Markus Himmel
2016-08-28 10:37:27 +02:00
parent 4054f60952
commit 2fe8fa2c27
3 changed files with 10 additions and 6 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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));