From d02a29566a9d84598e356cc78250502384c090da Mon Sep 17 00:00:00 2001 From: Araozu Date: Fri, 23 Oct 2020 16:05:06 -0500 Subject: [PATCH] Arreglado error que causaba que manos no listas entraran a la verificacion de yaku. --- src/juego/ContenedorGrupos.kt | 2 +- src/juego/Juego.kt | 11 +++++++++-- src/juego/yaku/Yaku.kt | 3 ++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/juego/ContenedorGrupos.kt b/src/juego/ContenedorGrupos.kt index 278c788..34ce8ab 100644 --- a/src/juego/ContenedorGrupos.kt +++ b/src/juego/ContenedorGrupos.kt @@ -60,6 +60,6 @@ class ContenedorGrupos( tris.size + seqs.size + (if (pares.size <= 1) 1 else 0) - huerfanos.size fun estaListo(): Boolean = - pares.size == 1 && huerfanos.size == 0 + pares.size == 1 && huerfanos.size == 0 && (tris.size + seqs.size == 3) } diff --git a/src/juego/Juego.kt b/src/juego/Juego.kt index 760a19f..734cdf7 100644 --- a/src/juego/Juego.kt +++ b/src/juego/Juego.kt @@ -120,9 +120,14 @@ class Juego(val usuarios: ArrayList>) { posCartaActual++ // Asignar nueva carta - manos[idSigUsuario]!!.sigCarta = sigCarta + val manoSigJugador = manos[idSigUsuario]!! + manoSigJugador.sigCarta = sigCarta - // TODO: Verificar tsumo + // TODO: Arreglar. Roto. + val oportunidadWin = OportunidadWin.verificar(sigCarta, manoSigJugador.cartas, manoSigJugador.cartasReveladas) + if (oportunidadWin != null) { + manoSigJugador.oportunidades.add(oportunidadWin) + } } @@ -203,6 +208,7 @@ class Juego(val usuarios: ArrayList>) { } } + // TODO: Usar diferente metodo para ignorar oportunidad Tsumo suspend fun ignorarOportunidadSeq(idUsuario: String) { var aunHayOportunidades = false @@ -213,6 +219,7 @@ class Juego(val usuarios: ArrayList>) { continue } + // TODO: Notificar al jugador que su oportunidad ha sido ignorada // Si algun otro jugador tiene una oportunidad if (mano.oportunidades.isNotEmpty()) { aunHayOportunidades = true diff --git a/src/juego/yaku/Yaku.kt b/src/juego/yaku/Yaku.kt index 2798176..08715f4 100644 --- a/src/juego/yaku/Yaku.kt +++ b/src/juego/yaku/Yaku.kt @@ -41,7 +41,8 @@ fun obtenerListaYakus(contenedorGrupos: ContenedorGrupos, esManoAbierta: Boolean || contenedorGrupos.pares.size != 1 || contenedorGrupos.huerfanos.size != 0 ) { - throw Error("Error de invariante: Se intento verificar los yakus de un contenedor invalido.") + System.err.println("Error de invariante: Se intento verificar los yakus de un contenedor invalido.") + return arrayListOf() } // 15 puntos