Ajustada clase OportunidadTri
This commit is contained in:
parent
06a2319d5e
commit
af38681e2f
@ -164,6 +164,13 @@ class Juego(val usuarios: ArrayList<Pair<String, Boolean>>) {
|
|||||||
mano.oportunidades.add(oportunidadSeq)
|
mano.oportunidades.add(oportunidadSeq)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Oportunidades tri
|
||||||
|
val oportunidadTri = OportunidadTri.verificar(carta, mano.cartas)
|
||||||
|
if (oportunidadTri != null) {
|
||||||
|
hayOportunidades = true
|
||||||
|
mano.oportunidades.add(oportunidadTri)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hayOportunidades) {
|
if (hayOportunidades) {
|
||||||
|
@ -1,31 +1,37 @@
|
|||||||
package dev.araozu.juego
|
package dev.araozu.juego
|
||||||
|
|
||||||
data class OportunidadTri(override val cartaDescartada: Int) :
|
data class OportunidadTri(override val cartaDescartada: Int, val cartas: Pair<Int, Int>) :
|
||||||
Oportunidad {
|
Oportunidad {
|
||||||
|
|
||||||
override val nombreOportunidad: String = "Tri"
|
override val nombreOportunidad: String = "Tri"
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
private fun arrlCartasContieneTri(carta: Int, arrl: ArrayList<Int>): Boolean {
|
private fun arrlCartasContieneTri(carta: Int, arrl: ArrayList<Int>): Pair<Int, Int>? {
|
||||||
var numCartasEncontradas = 0
|
var numCartasEncontradas = 0
|
||||||
|
|
||||||
|
val datos = Array(2) { 0 }
|
||||||
// Elimina el último bit para que no se distinga entre cartas de corazon/trebol/etc
|
// Elimina el último bit para que no se distinga entre cartas de corazon/trebol/etc
|
||||||
val valorCarta = (carta ushr 1) shl 1
|
val valorCarta = (carta ushr 1) shl 1
|
||||||
for (c in arrl) {
|
for (c in arrl) {
|
||||||
val valorCartaN = (c ushr 1) shl 1
|
val valorCartaN = (c ushr 1) shl 1
|
||||||
if (valorCarta == valorCartaN) numCartasEncontradas++
|
if (valorCarta == valorCartaN) {
|
||||||
if (numCartasEncontradas == 2) return true
|
datos[numCartasEncontradas] = c
|
||||||
|
numCartasEncontradas++
|
||||||
|
}
|
||||||
|
if (numCartasEncontradas == 2) return Pair(datos[0], datos[1])
|
||||||
}
|
}
|
||||||
return false
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
fun verificar(valorCarta: Int, cartasMano: ArrayList<Int>): OportunidadTri? =
|
fun verificar(valorCarta: Int, cartasMano: ArrayList<Int>): OportunidadTri? {
|
||||||
if (arrlCartasContieneTri(valorCarta, cartasMano)) {
|
val r = arrlCartasContieneTri(valorCarta, cartasMano)
|
||||||
OportunidadTri(valorCarta)
|
return if (r != null) {
|
||||||
|
OportunidadTri(valorCarta, r)
|
||||||
} else {
|
} else {
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user