diff --git a/src/GestorUsuarios.kt b/src/GestorUsuarios.kt index ccbe5c1..800c2ad 100644 --- a/src/GestorUsuarios.kt +++ b/src/GestorUsuarios.kt @@ -1,7 +1,5 @@ package dev.araozu -import io.ktor.http.cio.websocket.* - object GestorUsuarios { private val usuarios: HashMap = HashMap() diff --git a/src/JuegoWS.kt b/src/JuegoWS.kt index abeb91a..72f443f 100644 --- a/src/JuegoWS.kt +++ b/src/JuegoWS.kt @@ -45,6 +45,12 @@ fun Routing.juegows() { datos.combinacion ) } + "llamar_ron" -> { + TODO() + } + "llamar_tsumo" -> { + TODO() + } } } } diff --git a/src/juego/GestorDora.kt b/src/juego/GestorDora.kt index 37cbc87..5c186ca 100644 --- a/src/juego/GestorDora.kt +++ b/src/juego/GestorDora.kt @@ -3,8 +3,8 @@ package dev.araozu.juego class GestorDora(private val cartas: ArrayList) { private val doraCerrado = arrayListOf(cartas[0]) - private val doraAbierto = arrayListOf() - var turnosSigDora = 20 + private val doraAbierto = arrayListOf(cartas[5]) + private var turnosSigDora = 20 var turnosRestantesDoraCerrado = turnosSigDora // 20 15 10 5 private set @@ -30,7 +30,7 @@ class GestorDora(private val cartas: ArrayList) { } fun actualizarDoraAbierto() { - if (doraCerrado.size >= 5) return + if (doraAbierto.size >= 5) return doraAbierto.add(cartas[5 + doraAbierto.size]) } diff --git a/src/juego/Juego.kt b/src/juego/Juego.kt index 7196e0b..760a19f 100644 --- a/src/juego/Juego.kt +++ b/src/juego/Juego.kt @@ -110,12 +110,20 @@ class Juego(val usuarios: ArrayList>) { } private fun cambiarTurnoSigJugadorConsecutivo() { - // Extraer, dar sig carta al sig jugador, cambiar turno + // Cambiar turno al sig jugador consecutivo turnoActual = (turnoActual + 1) % 4 + val idSigUsuario = ordenJugadores[turnoActual] + + // Extraer sig carta. TODO: Verificar que no quedan cartas y establecer empate val sigCarta = cartas[posCartaActual] posCartaActual++ + + // Asignar nueva carta manos[idSigUsuario]!!.sigCarta = sigCarta + + // TODO: Verificar tsumo + } private fun esUsuarioIzq(idUsuarioIzq: String, idUsuario1: String): Boolean { @@ -173,7 +181,7 @@ class Juego(val usuarios: ArrayList>) { mano.oportunidades.add(oportunidadTri) } - // Oportunidades win + // Oportunidades win (ron) val oportunidadWin = OportunidadWin.verificar(carta, mano.cartas, mano.cartasReveladas) if (oportunidadWin != null) { hayOportunidades = true @@ -214,10 +222,13 @@ class Juego(val usuarios: ArrayList>) { // Si no quedan oportunidades cambiar el turno al sig jugador if (!aunHayOportunidades) { cambiarTurnoSigJugadorConsecutivo() - } - // Enviar los nuevos datos - enviarDatosATodos() + // Actualizar dora + gestorDora!!.actualizarDoraCerrado() + + // Enviar los nuevos datos + enviarDatosATodos() + } } private fun cambiarTurnoSegunIdUsuario(idUsuario: String) { diff --git a/src/juego/yaku/yaku4.kt b/src/juego/yaku/yaku4.kt index 37c8811..86c89ed 100644 --- a/src/juego/yaku/yaku4.kt +++ b/src/juego/yaku/yaku4.kt @@ -95,6 +95,7 @@ internal fun yakuTripleCuadruples(contenedorGrupos: ContenedorGrupos): Boolean { return true } +// TODO: Las secuencias pueden no estar en orden internal fun yakuEscalera(contenedorGrupos: ContenedorGrupos): Boolean { if (contenedorGrupos.seqs.size != 3) return false diff --git a/src/juego/yaku/yaku5.kt b/src/juego/yaku/yaku5.kt index f222837..0fb5e7d 100644 --- a/src/juego/yaku/yaku5.kt +++ b/src/juego/yaku/yaku5.kt @@ -3,7 +3,6 @@ package dev.araozu.juego.yaku import dev.araozu.juego.CartaNumero import dev.araozu.juego.ContenedorGrupos -// TODO: Cambiar descripcion en la pagina web internal fun yakuExterior(contenedorGrupos: ContenedorGrupos): Boolean { if (contenedorGrupos.tris.size != 3) return false @@ -25,6 +24,7 @@ internal fun yakuExterior(contenedorGrupos: ContenedorGrupos): Boolean { return true } +// TODO: Las secuencias pueden no estar en orden internal fun yakuEscaleraFull(contenedorGrupos: ContenedorGrupos): Boolean { if (contenedorGrupos.seqs.size != 3) return false