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
|
package dev.araozu
|
||||||
|
|
||||||
import io.ktor.http.cio.websocket.*
|
|
||||||
|
|
||||||
object GestorUsuarios {
|
object GestorUsuarios {
|
||||||
|
|
||||||
private val usuarios: HashMap<String, String> = HashMap()
|
private val usuarios: HashMap<String, String> = HashMap()
|
||||||
|
@ -45,6 +45,12 @@ fun Routing.juegows() {
|
|||||||
datos.combinacion
|
datos.combinacion
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
"llamar_ron" -> {
|
||||||
|
TODO()
|
||||||
|
}
|
||||||
|
"llamar_tsumo" -> {
|
||||||
|
TODO()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,8 @@ package dev.araozu.juego
|
|||||||
class GestorDora(private val cartas: ArrayList<Int>) {
|
class GestorDora(private val cartas: ArrayList<Int>) {
|
||||||
|
|
||||||
private val doraCerrado = arrayListOf(cartas[0])
|
private val doraCerrado = arrayListOf(cartas[0])
|
||||||
private val doraAbierto = arrayListOf<Int>()
|
private val doraAbierto = arrayListOf(cartas[5])
|
||||||
var turnosSigDora = 20
|
private var turnosSigDora = 20
|
||||||
var turnosRestantesDoraCerrado = turnosSigDora // 20 15 10 5
|
var turnosRestantesDoraCerrado = turnosSigDora // 20 15 10 5
|
||||||
private set
|
private set
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ class GestorDora(private val cartas: ArrayList<Int>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun actualizarDoraAbierto() {
|
fun actualizarDoraAbierto() {
|
||||||
if (doraCerrado.size >= 5) return
|
if (doraAbierto.size >= 5) return
|
||||||
doraAbierto.add(cartas[5 + doraAbierto.size])
|
doraAbierto.add(cartas[5 + doraAbierto.size])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,12 +110,20 @@ class Juego(val usuarios: ArrayList<Pair<String, Boolean>>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun cambiarTurnoSigJugadorConsecutivo() {
|
private fun cambiarTurnoSigJugadorConsecutivo() {
|
||||||
// Extraer, dar sig carta al sig jugador, cambiar turno
|
// Cambiar turno al sig jugador consecutivo
|
||||||
turnoActual = (turnoActual + 1) % 4
|
turnoActual = (turnoActual + 1) % 4
|
||||||
|
|
||||||
val idSigUsuario = ordenJugadores[turnoActual]
|
val idSigUsuario = ordenJugadores[turnoActual]
|
||||||
|
|
||||||
|
// Extraer sig carta. TODO: Verificar que no quedan cartas y establecer empate
|
||||||
val sigCarta = cartas[posCartaActual]
|
val sigCarta = cartas[posCartaActual]
|
||||||
posCartaActual++
|
posCartaActual++
|
||||||
|
|
||||||
|
// Asignar nueva carta
|
||||||
manos[idSigUsuario]!!.sigCarta = sigCarta
|
manos[idSigUsuario]!!.sigCarta = sigCarta
|
||||||
|
|
||||||
|
// TODO: Verificar tsumo
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun esUsuarioIzq(idUsuarioIzq: String, idUsuario1: String): Boolean {
|
private fun esUsuarioIzq(idUsuarioIzq: String, idUsuario1: String): Boolean {
|
||||||
@ -173,7 +181,7 @@ class Juego(val usuarios: ArrayList<Pair<String, Boolean>>) {
|
|||||||
mano.oportunidades.add(oportunidadTri)
|
mano.oportunidades.add(oportunidadTri)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Oportunidades win
|
// Oportunidades win (ron)
|
||||||
val oportunidadWin = OportunidadWin.verificar(carta, mano.cartas, mano.cartasReveladas)
|
val oportunidadWin = OportunidadWin.verificar(carta, mano.cartas, mano.cartasReveladas)
|
||||||
if (oportunidadWin != null) {
|
if (oportunidadWin != null) {
|
||||||
hayOportunidades = true
|
hayOportunidades = true
|
||||||
@ -214,10 +222,13 @@ class Juego(val usuarios: ArrayList<Pair<String, Boolean>>) {
|
|||||||
// Si no quedan oportunidades cambiar el turno al sig jugador
|
// Si no quedan oportunidades cambiar el turno al sig jugador
|
||||||
if (!aunHayOportunidades) {
|
if (!aunHayOportunidades) {
|
||||||
cambiarTurnoSigJugadorConsecutivo()
|
cambiarTurnoSigJugadorConsecutivo()
|
||||||
}
|
|
||||||
|
|
||||||
// Enviar los nuevos datos
|
// Actualizar dora
|
||||||
enviarDatosATodos()
|
gestorDora!!.actualizarDoraCerrado()
|
||||||
|
|
||||||
|
// Enviar los nuevos datos
|
||||||
|
enviarDatosATodos()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun cambiarTurnoSegunIdUsuario(idUsuario: String) {
|
private fun cambiarTurnoSegunIdUsuario(idUsuario: String) {
|
||||||
|
@ -95,6 +95,7 @@ internal fun yakuTripleCuadruples(contenedorGrupos: ContenedorGrupos): Boolean {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Las secuencias pueden no estar en orden
|
||||||
internal fun yakuEscalera(contenedorGrupos: ContenedorGrupos): Boolean {
|
internal fun yakuEscalera(contenedorGrupos: ContenedorGrupos): Boolean {
|
||||||
|
|
||||||
if (contenedorGrupos.seqs.size != 3) return false
|
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.CartaNumero
|
||||||
import dev.araozu.juego.ContenedorGrupos
|
import dev.araozu.juego.ContenedorGrupos
|
||||||
|
|
||||||
// TODO: Cambiar descripcion en la pagina web
|
|
||||||
internal fun yakuExterior(contenedorGrupos: ContenedorGrupos): Boolean {
|
internal fun yakuExterior(contenedorGrupos: ContenedorGrupos): Boolean {
|
||||||
|
|
||||||
if (contenedorGrupos.tris.size != 3) return false
|
if (contenedorGrupos.tris.size != 3) return false
|
||||||
@ -25,6 +24,7 @@ internal fun yakuExterior(contenedorGrupos: ContenedorGrupos): Boolean {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Las secuencias pueden no estar en orden
|
||||||
internal fun yakuEscaleraFull(contenedorGrupos: ContenedorGrupos): Boolean {
|
internal fun yakuEscaleraFull(contenedorGrupos: ContenedorGrupos): Boolean {
|
||||||
|
|
||||||
if (contenedorGrupos.seqs.size != 3) return false
|
if (contenedorGrupos.seqs.size != 3) return false
|
||||||
|
Loading…
Reference in New Issue
Block a user