Ahora el yaku abierto inicia con 1 carta revelada.
This commit is contained in:
parent
d24409721e
commit
110a8c14d6
@ -1,7 +1,5 @@
|
||||
package dev.araozu
|
||||
|
||||
import io.ktor.http.cio.websocket.*
|
||||
|
||||
object GestorUsuarios {
|
||||
|
||||
private val usuarios: HashMap<String, String> = HashMap()
|
||||
|
@ -45,6 +45,12 @@ fun Routing.juegows() {
|
||||
datos.combinacion
|
||||
)
|
||||
}
|
||||
"llamar_ron" -> {
|
||||
TODO()
|
||||
}
|
||||
"llamar_tsumo" -> {
|
||||
TODO()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,8 +3,8 @@ package dev.araozu.juego
|
||||
class GestorDora(private val cartas: ArrayList<Int>) {
|
||||
|
||||
private val doraCerrado = arrayListOf(cartas[0])
|
||||
private val doraAbierto = arrayListOf<Int>()
|
||||
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<Int>) {
|
||||
}
|
||||
|
||||
fun actualizarDoraAbierto() {
|
||||
if (doraCerrado.size >= 5) return
|
||||
if (doraAbierto.size >= 5) return
|
||||
doraAbierto.add(cartas[5 + doraAbierto.size])
|
||||
}
|
||||
|
||||
|
@ -110,12 +110,20 @@ class Juego(val usuarios: ArrayList<Pair<String, Boolean>>) {
|
||||
}
|
||||
|
||||
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<Pair<String, Boolean>>) {
|
||||
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<Pair<String, Boolean>>) {
|
||||
// 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) {
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user