Untitled

 avatar
unknown
json
2 years ago
1.3 kB
7
Indexable

typealias Magnitude = Int

enum class CardSuit {
    HEARTS,
    CLUBS,
    DIAMONDS,
    SPADES
}

data class Card(
    val suit: CardSuit, // масти
    val magnitude: Magnitude // число, от 6 до 14 включительно, 11,12,13,14 - валет, дама, король, туз соотвественно
)

data class User(
    val id: String,
    val name: String,
    val email: String, // тут список полей обсуждается
)

data class Player(
    val id: String,
    val user: User, // ссылка на юзера, чтобы отображать имя, аватар мб и тд
    val cards: List<Card>, // карты, которые на руках у игрока
    val points: Int, // очки
)

sealed class GameState {
    object Prepared: GameState()
    object Started: GameState()
    object Paused: GameState()
    // todo вот тут надо что-то добавить наверное про переключение игр
    object Finished(winner: Player): GameState()
}

data class FieldState(
    val deck: List<Card>, // карты, которые лежат на доске (мб надо сделать мапу Map<Player, Card>, чтобы знать кто какую карту кинул)
    
    val players: List<Player>, // текущие игроки
)
Editor is loading...