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
|
||||
|
||||
data class DatosJuego(
|
||||
val dora: Array<Int>,
|
||||
val doraOculto: Array<Int>,
|
||||
val dora: ArrayList<Int>,
|
||||
val doraOculto: ArrayList<Int>,
|
||||
val manos: HashMap<String, Mano>,
|
||||
val cartasRestantes: Int,
|
||||
val ordenJugadores: Array<String>,
|
||||
@ -16,21 +16,25 @@ data class DatosJuego(
|
||||
|
||||
other as DatosJuego
|
||||
|
||||
if (!dora.contentEquals(other.dora)) return false
|
||||
if (!doraOculto.contentEquals(other.doraOculto)) return false
|
||||
if (dora != other.dora) return false
|
||||
if (doraOculto != other.doraOculto) return false
|
||||
if (manos != other.manos) return false
|
||||
if (cartasRestantes != other.cartasRestantes) return false
|
||||
if (!ordenJugadores.contentEquals(other.ordenJugadores)) return false
|
||||
if (turnoActual != other.turnoActual) return false
|
||||
if (turnosHastaDora != other.turnosHastaDora) return false
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
override fun hashCode(): Int {
|
||||
var result = dora.contentHashCode()
|
||||
result = 31 * result + doraOculto.contentHashCode()
|
||||
var result = dora.hashCode()
|
||||
result = 31 * result + doraOculto.hashCode()
|
||||
result = 31 * result + manos.hashCode()
|
||||
result = 31 * result + cartasRestantes
|
||||
result = 31 * result + ordenJugadores.contentHashCode()
|
||||
result = 31 * result + turnoActual.hashCode()
|
||||
result = 31 * result + turnosHastaDora
|
||||
return result
|
||||
}
|
||||
|
||||
|
@ -8,20 +8,12 @@ class GestorDora(private val cartas: ArrayList<Int>) {
|
||||
var turnosRestantesDoraCerrado = turnosSigDora // 32 16 8 4
|
||||
private set
|
||||
|
||||
operator fun component1(): Array<Int> {
|
||||
val numDora = doraCerrado.size
|
||||
return Array(5) {
|
||||
if (it < numDora) doraCerrado[it]
|
||||
else 0
|
||||
}
|
||||
operator fun component1(): ArrayList<Int> {
|
||||
return doraCerrado
|
||||
}
|
||||
|
||||
operator fun component2(): Array<Int> {
|
||||
val numDora = doraCerrado.size
|
||||
return Array(5) {
|
||||
if (it < numDora) doraAbierto[it]
|
||||
else 0
|
||||
}
|
||||
operator fun component2(): ArrayList<Int> {
|
||||
return doraAbierto
|
||||
}
|
||||
|
||||
fun actualizarDoraCerrado() {
|
||||
|
@ -139,7 +139,10 @@ class Juego(val usuarios: ArrayList<Pair<String, Boolean>>) {
|
||||
|
||||
// Verificar seq/tri/quad/win
|
||||
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)
|
||||
if (oportunidadSeq != null) {
|
||||
hayOportunidades = true
|
||||
|
@ -13,7 +13,8 @@ data class Mano(
|
||||
l.addAll(cartas.map { 0 })
|
||||
return this.copy(
|
||||
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