Cambiado codigo para que el jugador que descarta no tenga oportunidades, y los jugadores no puedan ver las oportunidades de otros

master
Araozu 2020-10-06 10:02:00 -05:00
parent 019f1a7b85
commit 91e4f02409
4 changed files with 20 additions and 20 deletions

View File

@ -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
}

View File

@ -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() {

View File

@ -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

View File

@ -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()
)
}