Chess960

class Chess960(seed: Double?) : AbstractChess2D

Represents Chess960 (Fischer random chess).

Uses the same board and pieces as classical chess, but the starting position of the pieces on the players' home ranks is randomized, following two rules:

  1. The bishop must be placed in opposite colour

  2. The king must be placed between rooks

Constructors

Chess960
Link copied to clipboard
fun Chess960(seed: Double? = null)

Functions

concede
Link copied to clipboard
abstract fun concede(player: Player)
Sets the concedeWinner to opponent (a player that is not current player)
equals
Link copied to clipboard
open operator fun equals(other: Any?): Boolean
getCurrentPlayer
Link copied to clipboard
open fun getCurrentPlayer(): Player
Returns the current player
getNextPlayer
Link copied to clipboard
open fun getNextPlayer(): Player
Returns the next player without incrementing the turn.
getOpponentPlayer
Link copied to clipboard
fun getOpponentPlayer(player: Player): Player
getOpponentPlayers
Link copied to clipboard
open fun getOpponentPlayers(player: Player): List<Player>
Returns a list of opponent players for a given player.
getOutcome
Link copied to clipboard
open fun getOutcome(): Outcome?
Returns the outcome of the game for the current player, which can be either Win or Draw (null if the game is not over)
abstract fun getOutcome(player: Player): Outcome?
Returns the outcome of the game for the given player, which can be either Win or Draw (null if the game is not over)
getPossiblePermutations
Link copied to clipboard
fun getPossiblePermutations(): Set<String>
Generates all possible permutations of positions of non-pawn pieces that satisfies the rules
getValidMoves
Link copied to clipboard
open fun getValidMoves(): List<Move<Board2D, MoveGenerator2D, Piece2D, Coordinate2D>>
Returns a list of all possible valid moves of the current player
abstract fun getValidMoves(player: Player): List<Move<Board2D, MoveGenerator2D, Piece2D, Coordinate2D>>
Returns a list of all possible valid moves of the given player
hashCode
Link copied to clipboard
open fun hashCode(): Int
inCheck
Link copied to clipboard
abstract fun inCheck(player: Player): Boolean
Returns if the given player's Royal piece is is check or not, assuming that the Royal piece is present on the board.
initBoard
Link copied to clipboard
open override fun initBoard()
initGame
Link copied to clipboard
abstract fun initGame()
Initialises the game by clearing and initialising the board
isOver
Link copied to clipboard
abstract fun isOver(): Boolean
Returns if the game is over or not
makeMove
Link copied to clipboard
abstract fun makeMove(move: Move<Board2D, MoveGenerator2D, Piece2D, Coordinate2D>)
Makes the given move on the current board and add the move to the move log.
nextPlayer
Link copied to clipboard
open fun nextPlayer()
Increments the turn
playerMakeMove
Link copied to clipboard
open fun playerMakeMove(move: Move<Board2D, MoveGenerator2D, Piece2D, Coordinate2D>)
Makes a given move and increments the turn
prevPlayer
Link copied to clipboard
open fun prevPlayer()
Decrements the turn
toString
Link copied to clipboard
open fun toString(): String
undoMove
Link copied to clipboard
abstract fun undoMove()
Reverts the last move and removes it from the move log.

Properties

board
Link copied to clipboard
open override val board: Board2D
endConditions
Link copied to clipboard
moveLog
Link copied to clipboard
abstract val moveLog: MutableList<Move<Board2D, MoveGenerator2D, Piece2D, Coordinate2D>>
the list of all moves played
name
Link copied to clipboard
open override val name: String
players
Link copied to clipboard
abstract val players: List<Player>
the list of all participants of the game
playerTurn
Link copied to clipboard
abstract var playerTurn: Int
the current turn of the game
rules
Link copied to clipboard
seed
Link copied to clipboard
open override var seed: Double? = null