private void checkIfGameOver() { int sizeOfBlackPossibleMoves = 0; int sizeOfWhitePossibleMoves = 0; for (int y = 0; y < this.r_boardSize; y++) { for (int x = 0; x < this.r_boardSize; x++) { Point p = new Point(x, y); DamkaPieces.Type t = this.GetPieceByIndex(p); int count = this.GetLandingOptions(p).Count; if (DamkaPieces.GetKing(t) != DamkaPieces.Type.BlackKing) { sizeOfBlackPossibleMoves += count; } else if (DamkaPieces.GetKing(t) != DamkaPieces.Type.WhiteKing) { sizeOfWhitePossibleMoves += count; } } } if (sizeOfBlackPossibleMoves == 0) { this.IsGameOver = true; this.Winner = this.r_player2; } else if (sizeOfWhitePossibleMoves == 0) { this.IsGameOver = true; this.Winner = this.r_player1; } }
private void checkIfKingged(Point i_index) { DamkaPieces.Type type = this.GetPieceByIndex(i_index); bool hasReachedOtherSide = this.isSimplePieceOnOtherSide(i_index, type); if (hasReachedOtherSide) { this.placePieceAt(i_index, DamkaPieces.GetKing(type)); } }