Skip to content

io.bordeauxkt.kotlin15.game

Types

Game

sealed class Game

A state of the game.

GameFinished

data class GameFinished(
    hands: Map<Player, Hand>, 
    val table: Deck, 
    val winner: Player
) : GameHalfTurn

Game state after a player has won.

GameHalfTurn

sealed class GameHalfTurn : Game

The possible states after GameNewTurn.play.

GameNewTurn

data class GameNewTurn(
    hands: Map<Player, Hand>, 
    val table: Deck, 
    val currentPlayer: Player, 
    val lastToPlay: Player?
) : GameHalfTurn

Game state when it's a new player's turn.

GameNotStarted

data class GameNotStarted(val players: Set<Player>, random: Random) : Game

Game state before the game starts: users are registering.

GameSelectCard

data class GameSelectCard(
    hands: Map<Player, Hand>, 
    val previousTable: Deck, 
    val newTable: Deck, 
    val currentPlayer: Player
) : GameHalfTurn

Game state where a player just placed cards on the table.

LegalMove

fun interface LegalMove<out GameState : Game>

A player action.

Properties

PLAYER_COUNT

The range of players allowed in a game.

Functions

newGame

fun newGame(random: Random = Random): GameNotStarted

Creates a new Game instance.