From 1c2a4d0a09189e2d7a785894fa374cd01f994b9b Mon Sep 17 00:00:00 2001 From: Laurent Date: Tue, 7 Jan 2020 13:37:27 +0100 Subject: [PATCH] First hand history commit --- .../android/model/handhistory/Builder.kt | 42 ++++++++++ .../model/handhistory/ComputedAction.kt | 18 +++++ .../android/model/realm/HandHistory.kt | 16 ---- .../android/model/realm/Session.kt | 1 + .../android/model/realm/handhistory/Action.kt | 32 ++++++++ .../android/model/realm/handhistory/Card.kt | 25 ++++++ .../model/realm/handhistory/HandHistory.kt | 76 +++++++++++++++++++ .../model/realm/handhistory/PlayerSetup.kt | 29 +++++++ 8 files changed, 223 insertions(+), 16 deletions(-) create mode 100644 app/src/main/java/net/pokeranalytics/android/model/handhistory/Builder.kt create mode 100644 app/src/main/java/net/pokeranalytics/android/model/handhistory/ComputedAction.kt delete mode 100644 app/src/main/java/net/pokeranalytics/android/model/realm/HandHistory.kt create mode 100644 app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/Action.kt create mode 100644 app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/Card.kt create mode 100644 app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/HandHistory.kt create mode 100644 app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/PlayerSetup.kt diff --git a/app/src/main/java/net/pokeranalytics/android/model/handhistory/Builder.kt b/app/src/main/java/net/pokeranalytics/android/model/handhistory/Builder.kt new file mode 100644 index 00000000..a0e11180 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/model/handhistory/Builder.kt @@ -0,0 +1,42 @@ +package net.pokeranalytics.android.model.handhistory + +import net.pokeranalytics.android.model.realm.handhistory.HandHistory + +class Builder { + + /*** + * The hand history + */ + private var handHistory: HandHistory + set(value) { + field = value + load() + } + + val actions: List = listOf() + + constructor() { + this.handHistory = HandHistory() + } + + constructor(handHistory: HandHistory) { + this.handHistory = handHistory + } + + private fun load() { + + var potSize = 0.0 + + // sorted actions + this.handHistory.actions.forEach { + + val computedAction = ComputedAction(it, potSize, 0.0) + } + + } + + private fun save() { + + } + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/model/handhistory/ComputedAction.kt b/app/src/main/java/net/pokeranalytics/android/model/handhistory/ComputedAction.kt new file mode 100644 index 00000000..b68dfc4e --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/model/handhistory/ComputedAction.kt @@ -0,0 +1,18 @@ +package net.pokeranalytics.android.model.handhistory + +import net.pokeranalytics.android.model.realm.handhistory.Action + +class ComputedAction(var action: Action, + var potSize: Double = 0.0, + var playerRemainingStack: Double = 0.0) { + + /*** + * The potsize is used: + * - in the replayer / video + * - in the list of actions by street + */ +// var potSize = 0.0 +// +// var playerRemainingStack = 0.0 + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/HandHistory.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/HandHistory.kt deleted file mode 100644 index c65264f9..00000000 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/HandHistory.kt +++ /dev/null @@ -1,16 +0,0 @@ -package net.pokeranalytics.android.model.realm - -import io.realm.RealmObject -import io.realm.annotations.PrimaryKey -import java.util.* - - -open class HandHistory : RealmObject() { - - @PrimaryKey - var id = UUID.randomUUID().toString() - - // the date of the hand history - var date: Date = Date() - -} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt index 79bfee91..d342387a 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt @@ -26,6 +26,7 @@ import net.pokeranalytics.android.model.filter.Filterable import net.pokeranalytics.android.model.filter.QueryCondition import net.pokeranalytics.android.model.filter.QueryCondition.* import net.pokeranalytics.android.model.interfaces.* +import net.pokeranalytics.android.model.realm.handhistory.HandHistory import net.pokeranalytics.android.model.utils.SessionSetManager import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource import net.pokeranalytics.android.ui.adapter.UnmanagedRowRepresentableException diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/Action.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/Action.kt new file mode 100644 index 00000000..a948a258 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/Action.kt @@ -0,0 +1,32 @@ +package net.pokeranalytics.android.model.realm.handhistory + +import io.realm.RealmObject + +open class Action : RealmObject() { + + /*** + * The street of the action + */ + var street: Int = 0 + + /*** + * The index of the action + */ + var index: Int = 0 + + /*** + * The position of the user making the action + */ + var position: Int = 0 + + /*** + * The type of action: check, fold, raise... + */ + var type: Int = 0 + + /*** + * The amount linked for a bet, raise... + */ + var amount: Double? = null + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/Card.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/Card.kt new file mode 100644 index 00000000..68637116 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/Card.kt @@ -0,0 +1,25 @@ +package net.pokeranalytics.android.model.realm.handhistory + +import io.realm.RealmObject + + +open class Card : RealmObject() { + + enum class Suit { + SPADES, + HEART, + DIAMOND, + CLOVER + } + + /*** + * The card value: 2..A + */ + var value: Int = 0 + + /*** + * The card suit: heart, spades... + */ + var suit: Int = 0 + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/HandHistory.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/HandHistory.kt new file mode 100644 index 00000000..608783cc --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/HandHistory.kt @@ -0,0 +1,76 @@ +package net.pokeranalytics.android.model.realm.handhistory + +import io.realm.RealmList +import io.realm.RealmObject +import io.realm.annotations.PrimaryKey +import net.pokeranalytics.android.model.realm.Session +import java.util.* + + +open class HandHistory : RealmObject() { + + @PrimaryKey + var id = UUID.randomUUID().toString() + + /*** + * The date of the hand history + */ + var date: Date = Date() + + /*** + * The session whose hand was played + */ + var session: Session? = null + + /*** + * The small blind + */ + var smallBlind: Double = 0.0 + + /*** + * The big blind + */ + var bigBlind: Double = 0.0 + + /*** + * The ante + */ + var ante: Double = 0.0 + + /*** + * Big blind ante + */ + var bigBlindAnte: Boolean = false + + /*** + * Number of players in the hand + */ + var numberOfPlayers: Int = 9 + + /*** + * Number of players in the hand + */ + var comment: String? = null + + /*** + * The position index of the hero + */ + var heroIndex: Int? = null + + /*** + * The board + */ + var board: RealmList = RealmList() + + /*** + * The players actions + */ + var actions: RealmList = RealmList() + + /*** + * A list of players initial data: user, position, hand, stack + */ + var playerSetups: RealmList = RealmList() + + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/PlayerSetup.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/PlayerSetup.kt new file mode 100644 index 00000000..b29d772d --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/PlayerSetup.kt @@ -0,0 +1,29 @@ +package net.pokeranalytics.android.model.realm.handhistory + +import io.realm.RealmList +import io.realm.RealmObject +import net.pokeranalytics.android.model.realm.Player + +open class PlayerSetup : RealmObject() { + + /*** + * The player + */ + var player: Player? = null + + /*** + * The position at the table: SB..BUTTON + */ + var position: Int = 0 + + /*** + * The initial stack of the player + */ + var stack: Double? = null + + /*** + * The cards of the player + */ + var cards: RealmList = RealmList() + +}