Arreglado error que causaba que manos no listas entraran a la verificacion de yaku.

master
Araozu 2020-10-23 16:05:06 -05:00
parent 110a8c14d6
commit d02a29566a
3 changed files with 12 additions and 4 deletions

View File

@ -60,6 +60,6 @@ class ContenedorGrupos(
tris.size + seqs.size + (if (pares.size <= 1) 1 else 0) - huerfanos.size tris.size + seqs.size + (if (pares.size <= 1) 1 else 0) - huerfanos.size
fun estaListo(): Boolean = fun estaListo(): Boolean =
pares.size == 1 && huerfanos.size == 0 pares.size == 1 && huerfanos.size == 0 && (tris.size + seqs.size == 3)
} }

View File

@ -120,9 +120,14 @@ class Juego(val usuarios: ArrayList<Pair<String, Boolean>>) {
posCartaActual++ posCartaActual++
// Asignar nueva carta // 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<Pair<String, Boolean>>) {
} }
} }
// TODO: Usar diferente metodo para ignorar oportunidad Tsumo
suspend fun ignorarOportunidadSeq(idUsuario: String) { suspend fun ignorarOportunidadSeq(idUsuario: String) {
var aunHayOportunidades = false var aunHayOportunidades = false
@ -213,6 +219,7 @@ class Juego(val usuarios: ArrayList<Pair<String, Boolean>>) {
continue continue
} }
// TODO: Notificar al jugador que su oportunidad ha sido ignorada
// Si algun otro jugador tiene una oportunidad // Si algun otro jugador tiene una oportunidad
if (mano.oportunidades.isNotEmpty()) { if (mano.oportunidades.isNotEmpty()) {
aunHayOportunidades = true aunHayOportunidades = true

View File

@ -41,7 +41,8 @@ fun obtenerListaYakus(contenedorGrupos: ContenedorGrupos, esManoAbierta: Boolean
|| contenedorGrupos.pares.size != 1 || contenedorGrupos.pares.size != 1
|| contenedorGrupos.huerfanos.size != 0 || 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 // 15 puntos