King

King
class King(c: String, p: Position) extends Piece, Castleable

King piece.

A king is a piece which can move of one square in any direction.

Value parameters

c

The color of the piece.

p

The position of the piece.

Attributes

Graph
Supertypes
trait Castleable
class Piece
class Object
trait Matchable
class Any

Members list

Value members

Concrete methods

override def availableMovements(friendlyPieces: List[Piece], enemiesPieces: List[Piece]): List[Position]

Available movements of the king.

Available movements of the king.

The king can go in any directions for one square. The king can also castle with one of its rooks, if it has the ability to do so.

Value parameters

enemiesPieces

The enemies pieces.

friendlyPieces

The allies pieces.

Attributes

Returns

The list of available movements.

Definition Classes
def isChecked(friendlyPieces: List[Piece], enemiesPieces: List[Piece]): Boolean

The king is checked if it is in any enemies pieces movements range.

The king is checked if it is in any enemies pieces movements range.

Value parameters

enemiesPieces

Enemies pieces.

friendlyPieces

Allies pieces.

Attributes

Returns

true if the king is in check, false otherwise.

override def isValidMovement(targetPosition: Position, friendlyPieces: List[Piece], enemiesPieces: List[Piece], friendlyKing: King): Boolean

The king cannot move into check.

The king cannot move into check.

This function need to be overwritten because the king is moving.

Value parameters

enemiesPieces

Enemies pieces.

friendlyKing

Useless.

friendlyPieces

Allies pieces.

targetPosition

The target position for the king.

Attributes

Returns

true if the movement is valid, false otherwise.

Todo

find a way to remove friendlyKing and keeping it simple to use.

Definition Classes
override def toString(): String

Overriding the toString method.

Overriding the toString method.

Neutral piece will be printed as blank space.

Attributes

Returns

The blank space

Definition Classes
Piece -> Any
def valideCastle(targetPosition: Position, friendlyPieces: List[Piece], enemiesPieces: List[Piece]): Boolean

Verify if the castle move is a valid one.

Verify if the castle move is a valid one.

This function verifies if the target position is correct for castleing.

It first verify if the king is checked, and if any of the square it has to move are under attack.

If not, it verifies if there is no pieces between the king and the targeted position.

Value parameters

enemiesPieces

The enemies pieces.

friendlyPieces

The allies pieces.

targetPosition

The position on which casteling.

Attributes

Returns

true if the move is valid, false otherwise.

Inherited methods

def canCastle: Boolean

Says if a piece is able to castle.

Says if a piece is able to castle.

Attributes

Returns

true if the piece can castle, false otherwise.

Inherited from:
Castleable
def cannotCastle: Unit

Disable the right to castle for this piece.

Disable the right to castle for this piece.

Attributes

Inherited from:
Castleable
def color: String

The color of the piece.

The color of the piece.

Attributes

Returns

The color of the piece.

Inherited from:
Piece
def move(newRow: Int, newColumn: Int): Unit

Move a piece.

Move a piece.

This function moves a piece by moving its given position.

Value parameters

newColumn

The new position column

newRow

The new position row

Attributes

Inherited from:
Piece
def move(newPos: Position): Unit

Move a piece.

Move a piece.

This function moves a piece by moving its given position.

Value parameters

newPos

The new position

Attributes

Inherited from:
Piece

The position of the piece.

The position of the piece.

Attributes

Returns

The position of the piece.

Inherited from:
Piece

Inherited fields

val longRangeMovements: (List[Piece], List[Piece], Int, Int) => List[Position]

Movements for long range pieces.

Movements for long range pieces.

Returns a list containing all the squares in the given direction from the piece Position until it reaches either the end of the board or a piece.

If the last square is an enemy piece, keep it to the list (because it can be captured)

Attributes

Inherited from:
Piece