Habilitada OportunidadWin
This commit is contained in:
parent
3e193a71a6
commit
6d066140ce
@ -1,6 +0,0 @@
|
|||||||
package dev.araozu
|
|
||||||
|
|
||||||
data class OportunidadesJuego (
|
|
||||||
val tipos: ArrayList<String>,
|
|
||||||
val cartaDescartada: Int
|
|
||||||
)
|
|
102
src/TestRon.kt
102
src/TestRon.kt
@ -1,102 +0,0 @@
|
|||||||
package dev.araozu
|
|
||||||
|
|
||||||
/*
|
|
||||||
122334
|
|
||||||
112233
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
fun obtSeq(arrl: ArrayList<Int>): ArrayList<ArrayList<Int>> {
|
|
||||||
val arrlR = arrayListOf<ArrayList<Int>>()
|
|
||||||
var i = 0
|
|
||||||
while (i < arrl.size) {
|
|
||||||
val primerElem = arrl[i]
|
|
||||||
if (arrl.contains(primerElem + 1) && arrl.contains(primerElem + 2)) {
|
|
||||||
arrl.remove(primerElem)
|
|
||||||
arrl.remove(primerElem + 1)
|
|
||||||
arrl.remove(primerElem + 2)
|
|
||||||
arrlR.add(arrayListOf(primerElem, primerElem + 1, primerElem + 2))
|
|
||||||
} else {
|
|
||||||
i++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return arrlR
|
|
||||||
}
|
|
||||||
|
|
||||||
fun obtSeqInv(arrl: ArrayList<Int>): ArrayList<ArrayList<Int>> {
|
|
||||||
val arrlR = arrayListOf<ArrayList<Int>>()
|
|
||||||
var i = arrl.size - 1
|
|
||||||
while (i >= 0) {
|
|
||||||
val primerElem = arrl[i]
|
|
||||||
if (arrl.contains(primerElem - 1) && arrl.contains(primerElem - 2)) {
|
|
||||||
arrl.remove(primerElem)
|
|
||||||
arrl.remove(primerElem - 1)
|
|
||||||
arrl.remove(primerElem - 2)
|
|
||||||
i -= 3
|
|
||||||
arrlR.add(arrayListOf(primerElem, primerElem - 1, primerElem - 2))
|
|
||||||
} else {
|
|
||||||
i--
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return arrlR
|
|
||||||
}
|
|
||||||
|
|
||||||
fun obtTri(arrl: ArrayList<Int>): ArrayList<ArrayList<Int>> {
|
|
||||||
val arrlR = arrayListOf<ArrayList<Int>>()
|
|
||||||
var i = 0
|
|
||||||
while (i + 2 < arrl.size) {
|
|
||||||
val primerElem = arrl[i]
|
|
||||||
if (primerElem == arrl[i + 1] && primerElem == arrl[i + 2]) {
|
|
||||||
arrl.remove(primerElem)
|
|
||||||
arrl.remove(primerElem)
|
|
||||||
arrl.remove(primerElem)
|
|
||||||
arrlR.add(arrayListOf(primerElem, primerElem, primerElem))
|
|
||||||
} else {
|
|
||||||
i++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return arrlR
|
|
||||||
}
|
|
||||||
|
|
||||||
fun obtPar(arrl: ArrayList<Int>): ArrayList<ArrayList<Int>> {
|
|
||||||
val arrlR = arrayListOf<ArrayList<Int>>()
|
|
||||||
var i = 0
|
|
||||||
while (i + 1 < arrl.size) {
|
|
||||||
val primerElem = arrl[i]
|
|
||||||
if (primerElem == arrl[i + 1]) {
|
|
||||||
arrl.remove(primerElem)
|
|
||||||
arrl.remove(primerElem)
|
|
||||||
arrlR.add(arrayListOf(primerElem, primerElem))
|
|
||||||
} else {
|
|
||||||
i++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return arrlR
|
|
||||||
}
|
|
||||||
|
|
||||||
fun main() {
|
|
||||||
val cartas = arrayListOf(2, 2, 2, 3, 3, 4, 4)
|
|
||||||
val cartas2 = arrayListOf(2, 2, 2, 3, 3, 4, 4)
|
|
||||||
|
|
||||||
val arrlR = obtSeq(cartas)
|
|
||||||
val arrlT = obtTri(cartas)
|
|
||||||
val arrlP = obtPar(cartas)
|
|
||||||
|
|
||||||
println("-------------------")
|
|
||||||
println(arrlR)
|
|
||||||
println(arrlT)
|
|
||||||
println(arrlP)
|
|
||||||
println(cartas)
|
|
||||||
|
|
||||||
val arrlR2 = obtSeqInv(cartas2)
|
|
||||||
val arrlT2 = obtTri(cartas2)
|
|
||||||
val arrlP2 = obtPar(cartas2)
|
|
||||||
|
|
||||||
println("-------------------")
|
|
||||||
println(arrlR2)
|
|
||||||
println(arrlT2)
|
|
||||||
println(arrlP2)
|
|
||||||
println(cartas2)
|
|
||||||
}
|
|
@ -129,7 +129,8 @@ class Juego(val usuarios: ArrayList<Pair<String, Boolean>>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
suspend fun manejarDescarte(idUsuario: String, carta: Int) {
|
suspend fun manejarDescarte(idUsuario: String, carta: Int) {
|
||||||
if (ordenJugadores[turnoActual] == idUsuario) {
|
if (ordenJugadores[turnoActual] != idUsuario) return
|
||||||
|
|
||||||
val m = manos[idUsuario]!!
|
val m = manos[idUsuario]!!
|
||||||
|
|
||||||
if (m.sigCarta == carta) {
|
if (m.sigCarta == carta) {
|
||||||
@ -171,6 +172,13 @@ class Juego(val usuarios: ArrayList<Pair<String, Boolean>>) {
|
|||||||
hayOportunidades = true
|
hayOportunidades = true
|
||||||
mano.oportunidades.add(oportunidadTri)
|
mano.oportunidades.add(oportunidadTri)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Oportunidades win
|
||||||
|
val oportunidadWin = OportunidadWin.verificar(carta, mano.cartas)
|
||||||
|
if (oportunidadWin != null) {
|
||||||
|
hayOportunidades = true
|
||||||
|
mano.oportunidades.add(oportunidadWin)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hayOportunidades) {
|
if (hayOportunidades) {
|
||||||
@ -186,7 +194,6 @@ class Juego(val usuarios: ArrayList<Pair<String, Boolean>>) {
|
|||||||
enviarDatosATodos()
|
enviarDatosATodos()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
suspend fun ignorarOportunidadSeq(idUsuario: String) {
|
suspend fun ignorarOportunidadSeq(idUsuario: String) {
|
||||||
|
|
||||||
|
@ -145,7 +145,7 @@ class OportunidadWin(override val cartaDescartada: Int) : Oportunidad {
|
|||||||
return if (valorCont1 > valorCont2) contenedor1 else contenedor2
|
return if (valorCont1 > valorCont2) contenedor1 else contenedor2
|
||||||
}
|
}
|
||||||
|
|
||||||
fun verificar(valorCarta: Int, cartasMano: ArrayList<Int>) {
|
fun verificar(valorCarta: Int, cartasMano: ArrayList<Int>): OportunidadWin? {
|
||||||
val narrl = ArrayList<Int>(cartasMano.size + 1)
|
val narrl = ArrayList<Int>(cartasMano.size + 1)
|
||||||
narrl.addAll(cartasMano)
|
narrl.addAll(cartasMano)
|
||||||
narrl.add(valorCarta)
|
narrl.add(valorCarta)
|
||||||
@ -165,7 +165,11 @@ class OportunidadWin(override val cartaDescartada: Int) : Oportunidad {
|
|||||||
contenedorGrupos.agregarDesdeContenedor(obtenerContenedorCartasNumero(cartasRojo))
|
contenedorGrupos.agregarDesdeContenedor(obtenerContenedorCartasNumero(cartasRojo))
|
||||||
contenedorGrupos.agregarDesdeContenedor(obtenerContenedorCartasNumero(cartasNegro))
|
contenedorGrupos.agregarDesdeContenedor(obtenerContenedorCartasNumero(cartasNegro))
|
||||||
|
|
||||||
|
return if (contenedorGrupos.estaListo()) {
|
||||||
|
OportunidadWin(valorCarta)
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user