Agregada sig carta a la mano
This commit is contained in:
parent
ebecfaecfb
commit
903d1dfc80
47
src/Juego.kt
47
src/Juego.kt
@ -11,10 +11,10 @@ class Juego(val usuarios: ArrayList<Pair<String, Boolean>>) {
|
|||||||
private val dora: ArrayList<Int> = arrayListOf()
|
private val dora: ArrayList<Int> = arrayListOf()
|
||||||
private val doraPublico = Array(5) {0}
|
private val doraPublico = Array(5) {0}
|
||||||
private val doraOculto = Array(5) {0}
|
private val doraOculto = Array(5) {0}
|
||||||
var estadoJuego = EstadoJuego.Espera
|
private var estadoJuego = EstadoJuego.Espera
|
||||||
var posCartaActual = 0
|
private var posCartaActual = 0
|
||||||
var cartasRestantes = 58
|
private var cartasRestantes = 58
|
||||||
val turnoActual = 0
|
private val turnoActual = 0
|
||||||
|
|
||||||
suspend fun iniciarJuego(ws: WebSocketSession) {
|
suspend fun iniciarJuego(ws: WebSocketSession) {
|
||||||
if (estadoJuego != EstadoJuego.Espera) return
|
if (estadoJuego != EstadoJuego.Espera) return
|
||||||
@ -32,24 +32,37 @@ class Juego(val usuarios: ArrayList<Pair<String, Boolean>>) {
|
|||||||
doraPublico[0] = dora[0]
|
doraPublico[0] = dora[0]
|
||||||
doraOculto[0] = dora[4]
|
doraOculto[0] = dora[4]
|
||||||
|
|
||||||
for ((idUsuario, _) in usuarios) {
|
// Asignar orden de jugadores
|
||||||
|
var i = 0
|
||||||
|
var idJugadorInicial = ""
|
||||||
|
conexiones.forEach { (idUsuario, _) ->
|
||||||
|
if (i == 0) idJugadorInicial = idUsuario
|
||||||
|
ordenJugadores[i] = idUsuario
|
||||||
|
i++
|
||||||
|
|
||||||
val cartasL = arrayListOf<Int>()
|
val cartasL = arrayListOf<Int>()
|
||||||
|
|
||||||
for (i in posCartaActual until (posCartaActual + 10)) {
|
for (j in posCartaActual until (posCartaActual + 10)) {
|
||||||
cartasL.add(cartas[i])
|
cartasL.add(cartas[j])
|
||||||
}
|
}
|
||||||
posCartaActual += 10
|
posCartaActual += 10
|
||||||
|
|
||||||
val mano = Mano(cartasL)
|
val mano = if (idJugadorInicial == idUsuario) {
|
||||||
|
val sigCarta = cartas[posCartaActual]
|
||||||
|
posCartaActual++
|
||||||
|
|
||||||
|
Mano(cartasL, sigCarta = sigCarta)
|
||||||
|
} else {
|
||||||
|
Mano(cartasL)
|
||||||
|
}
|
||||||
|
|
||||||
manos[idUsuario] = mano
|
manos[idUsuario] = mano
|
||||||
}
|
}
|
||||||
|
|
||||||
var i = 0
|
conexiones.forEach { (_, socket) ->
|
||||||
conexiones.forEach { (idUsuario, socket) ->
|
|
||||||
ordenJugadores[i] = idUsuario
|
|
||||||
i++
|
|
||||||
socket.send(Frame.Text("{\"operacion\": \"juego_iniciado\"}"))
|
socket.send(Frame.Text("{\"operacion\": \"juego_iniciado\"}"))
|
||||||
}
|
}
|
||||||
|
|
||||||
conexiones.clear()
|
conexiones.clear()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,7 +81,15 @@ class Juego(val usuarios: ArrayList<Pair<String, Boolean>>) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val datosJuego = DatosJuego(doraPublico, doraOcultoS, manosS, cartasRestantes, ordenJugadores, ordenJugadores[turnoActual])
|
val idJugadorTurnoActual = ordenJugadores[turnoActual]
|
||||||
|
val datosJuego = DatosJuego(
|
||||||
|
doraPublico,
|
||||||
|
doraOcultoS,
|
||||||
|
manosS,
|
||||||
|
cartasRestantes,
|
||||||
|
ordenJugadores,
|
||||||
|
idJugadorTurnoActual
|
||||||
|
)
|
||||||
ws.send(Frame.Text("{\"operacion\": \"actualizar_datos\", \"datos\": ${gson.toJson(datosJuego)}}"))
|
ws.send(Frame.Text("{\"operacion\": \"actualizar_datos\", \"datos\": ${gson.toJson(datosJuego)}}"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,7 +5,8 @@ data class Mano(
|
|||||||
val allIn: Boolean = false,
|
val allIn: Boolean = false,
|
||||||
val cartaSig: Int? = null,
|
val cartaSig: Int? = null,
|
||||||
val cartasReveladas: ArrayList<ArrayList<Int>> = ArrayList(),
|
val cartasReveladas: ArrayList<ArrayList<Int>> = ArrayList(),
|
||||||
val descartes: List<Int> = ArrayList()
|
val descartes: List<Int> = ArrayList(),
|
||||||
|
val sigCarta: Int = -1
|
||||||
) {
|
) {
|
||||||
|
|
||||||
fun obtenerManoPrivada(): Mano {
|
fun obtenerManoPrivada(): Mano {
|
||||||
|
Loading…
Reference in New Issue
Block a user