Las oportunidades seq solo se ofrecen al jugador a la derecha del que descarta

master
Araozu 2020-10-06 11:58:51 -05:00
parent 91e4f02409
commit 2d6bde36c9
1 changed files with 17 additions and 4 deletions

View File

@ -118,6 +118,16 @@ class Juego(val usuarios: ArrayList<Pair<String, Boolean>>) {
manos[idSigUsuario]!!.sigCarta = sigCarta manos[idSigUsuario]!!.sigCarta = sigCarta
} }
private fun esUsuarioIzq(idUsuarioIzq: String, idUsuario1: String): Boolean {
var posUsuario1 = 0
var posUsuarioIzq = 0
for ((posActual, idUsuario) in ordenJugadores.withIndex()) {
if (idUsuario == idUsuario1) posUsuario1 = posActual
if (idUsuario == idUsuarioIzq) posUsuarioIzq = posActual
}
return (posUsuarioIzq + 1) % 4 == posUsuario1
}
suspend fun manejarDescarte(idUsuario: String, carta: Int) { suspend fun manejarDescarte(idUsuario: String, carta: Int) {
if (ordenJugadores[turnoActual] == idUsuario) { if (ordenJugadores[turnoActual] == idUsuario) {
val m = manos[idUsuario]!! val m = manos[idUsuario]!!
@ -143,12 +153,15 @@ class Juego(val usuarios: ArrayList<Pair<String, Boolean>>) {
// No buscar oportunidades en el usuario que acaba de descartar. // No buscar oportunidades en el usuario que acaba de descartar.
if (idUsuarioActual == idUsuario) continue if (idUsuarioActual == idUsuario) continue
// Solo verificar seq en el jugador a la derecha del que descarto
if (esUsuarioIzq(idUsuario, idUsuarioActual)) {
val oportunidadSeq = OportunidadSeq.verificar(carta, mano.cartas) val oportunidadSeq = OportunidadSeq.verificar(carta, mano.cartas)
if (oportunidadSeq != null) { if (oportunidadSeq != null) {
hayOportunidades = true hayOportunidades = true
mano.oportunidades.add(oportunidadSeq) mano.oportunidades.add(oportunidadSeq)
} }
} }
}
if (hayOportunidades) { if (hayOportunidades) {
// Enviar datos // Enviar datos