Arreglado error que causaba que manos no listas entraran a la verificacion de yaku.
This commit is contained in:
parent
110a8c14d6
commit
d02a29566a
@ -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)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user