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
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++
// 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) {
var aunHayOportunidades = false
@ -213,6 +219,7 @@ class Juego(val usuarios: ArrayList<Pair<String, Boolean>>) {
continue
}
// TODO: Notificar al jugador que su oportunidad ha sido ignorada
// Si algun otro jugador tiene una oportunidad
if (mano.oportunidades.isNotEmpty()) {
aunHayOportunidades = true

View File

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