Cambiado codigo para que el jugador que descarta no tenga oportunidades, y los jugadores no puedan ver las oportunidades de otros
This commit is contained in:
parent
019f1a7b85
commit
91e4f02409
@ -1,8 +1,8 @@
|
|||||||
package dev.araozu.juego
|
package dev.araozu.juego
|
||||||
|
|
||||||
data class DatosJuego(
|
data class DatosJuego(
|
||||||
val dora: Array<Int>,
|
val dora: ArrayList<Int>,
|
||||||
val doraOculto: Array<Int>,
|
val doraOculto: ArrayList<Int>,
|
||||||
val manos: HashMap<String, Mano>,
|
val manos: HashMap<String, Mano>,
|
||||||
val cartasRestantes: Int,
|
val cartasRestantes: Int,
|
||||||
val ordenJugadores: Array<String>,
|
val ordenJugadores: Array<String>,
|
||||||
@ -16,21 +16,25 @@ data class DatosJuego(
|
|||||||
|
|
||||||
other as DatosJuego
|
other as DatosJuego
|
||||||
|
|
||||||
if (!dora.contentEquals(other.dora)) return false
|
if (dora != other.dora) return false
|
||||||
if (!doraOculto.contentEquals(other.doraOculto)) return false
|
if (doraOculto != other.doraOculto) return false
|
||||||
if (manos != other.manos) return false
|
if (manos != other.manos) return false
|
||||||
if (cartasRestantes != other.cartasRestantes) return false
|
if (cartasRestantes != other.cartasRestantes) return false
|
||||||
if (!ordenJugadores.contentEquals(other.ordenJugadores)) return false
|
if (!ordenJugadores.contentEquals(other.ordenJugadores)) return false
|
||||||
|
if (turnoActual != other.turnoActual) return false
|
||||||
|
if (turnosHastaDora != other.turnosHastaDora) return false
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun hashCode(): Int {
|
override fun hashCode(): Int {
|
||||||
var result = dora.contentHashCode()
|
var result = dora.hashCode()
|
||||||
result = 31 * result + doraOculto.contentHashCode()
|
result = 31 * result + doraOculto.hashCode()
|
||||||
result = 31 * result + manos.hashCode()
|
result = 31 * result + manos.hashCode()
|
||||||
result = 31 * result + cartasRestantes
|
result = 31 * result + cartasRestantes
|
||||||
result = 31 * result + ordenJugadores.contentHashCode()
|
result = 31 * result + ordenJugadores.contentHashCode()
|
||||||
|
result = 31 * result + turnoActual.hashCode()
|
||||||
|
result = 31 * result + turnosHastaDora
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,20 +8,12 @@ class GestorDora(private val cartas: ArrayList<Int>) {
|
|||||||
var turnosRestantesDoraCerrado = turnosSigDora // 32 16 8 4
|
var turnosRestantesDoraCerrado = turnosSigDora // 32 16 8 4
|
||||||
private set
|
private set
|
||||||
|
|
||||||
operator fun component1(): Array<Int> {
|
operator fun component1(): ArrayList<Int> {
|
||||||
val numDora = doraCerrado.size
|
return doraCerrado
|
||||||
return Array(5) {
|
|
||||||
if (it < numDora) doraCerrado[it]
|
|
||||||
else 0
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
operator fun component2(): Array<Int> {
|
operator fun component2(): ArrayList<Int> {
|
||||||
val numDora = doraCerrado.size
|
return doraAbierto
|
||||||
return Array(5) {
|
|
||||||
if (it < numDora) doraAbierto[it]
|
|
||||||
else 0
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun actualizarDoraCerrado() {
|
fun actualizarDoraCerrado() {
|
||||||
|
@ -139,7 +139,10 @@ class Juego(val usuarios: ArrayList<Pair<String, Boolean>>) {
|
|||||||
|
|
||||||
// Verificar seq/tri/quad/win
|
// Verificar seq/tri/quad/win
|
||||||
var hayOportunidades = false
|
var hayOportunidades = false
|
||||||
for ((_, mano) in manos) {
|
for ((idUsuarioActual, mano) in manos) {
|
||||||
|
// No buscar oportunidades en el usuario que acaba de descartar.
|
||||||
|
if (idUsuarioActual == idUsuario) continue
|
||||||
|
|
||||||
val oportunidadSeq = OportunidadSeq.verificar(carta, mano.cartas)
|
val oportunidadSeq = OportunidadSeq.verificar(carta, mano.cartas)
|
||||||
if (oportunidadSeq != null) {
|
if (oportunidadSeq != null) {
|
||||||
hayOportunidades = true
|
hayOportunidades = true
|
||||||
|
@ -13,7 +13,8 @@ data class Mano(
|
|||||||
l.addAll(cartas.map { 0 })
|
l.addAll(cartas.map { 0 })
|
||||||
return this.copy(
|
return this.copy(
|
||||||
cartas = l,
|
cartas = l,
|
||||||
sigCarta = if (sigCarta != -1) 0 else sigCarta
|
sigCarta = if (sigCarta != -1) 0 else sigCarta,
|
||||||
|
oportunidades = arrayListOf()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user