Arreglado error en yakus escalera para que solo permitan cartas del mismo valor.
This commit is contained in:
parent
cfebb922c3
commit
1621df991f
@ -35,7 +35,7 @@ sealed class Carta(val valor: Int) {
|
||||
|
||||
}
|
||||
|
||||
sealed class CartaNumero(valor: Int, val numero: Int = (valor shl 27) ushr 28) : Carta(valor) {
|
||||
sealed class CartaNumero(valor: Int, val color: String, val numero: Int = (valor shl 27) ushr 28) : Carta(valor) {
|
||||
|
||||
companion object {
|
||||
fun separarCartasRojo(valores: ArrayList<Int>): Pair<ArrayList<CartaNumeroRojo>, ArrayList<Int>> {
|
||||
@ -91,8 +91,8 @@ sealed class CartaNumero(valor: Int, val numero: Int = (valor shl 27) ushr 28) :
|
||||
|
||||
}
|
||||
|
||||
class CartaNumeroNegro(valor: Int) : CartaNumero(valor)
|
||||
class CartaNumeroRojo(valor: Int) : CartaNumero(valor)
|
||||
class CartaNumeroNegro(valor: Int) : CartaNumero(valor, "negro")
|
||||
class CartaNumeroRojo(valor: Int) : CartaNumero(valor, "rojo")
|
||||
|
||||
sealed class CartaDragon(valor: Int) : Carta(valor)
|
||||
|
||||
|
@ -101,11 +101,13 @@ internal fun yakuEscalera(contenedorGrupos: ContenedorGrupos): Boolean {
|
||||
|
||||
var primeraCarta = false
|
||||
var numeroActual = 0
|
||||
var colorCarta = ""
|
||||
for (carrl in contenedorGrupos.tris) {
|
||||
for (c in carrl) {
|
||||
if (c !is CartaNumero) return false
|
||||
|
||||
if (!primeraCarta) {
|
||||
colorCarta = c.color
|
||||
numeroActual = when (c.numero) {
|
||||
1 -> 2
|
||||
2 -> 3
|
||||
@ -115,6 +117,7 @@ internal fun yakuEscalera(contenedorGrupos: ContenedorGrupos): Boolean {
|
||||
primeraCarta = true
|
||||
} else {
|
||||
if (c.numero != numeroActual) return false
|
||||
if (c.color != colorCarta) return false
|
||||
|
||||
numeroActual += 1
|
||||
}
|
||||
|
@ -30,10 +30,12 @@ internal fun yakuEscaleraFull(contenedorGrupos: ContenedorGrupos): Boolean {
|
||||
if (contenedorGrupos.seqs.size != 3) return false
|
||||
|
||||
var numeroInicialSemiEscalera = 0
|
||||
var colorCarta = ""
|
||||
for (carrl in contenedorGrupos.pares) {
|
||||
for (c in carrl) {
|
||||
if (c !is CartaNumero) return false
|
||||
|
||||
colorCarta = c.color
|
||||
numeroInicialSemiEscalera = when (c.numero) {
|
||||
1 -> 2
|
||||
10 -> 1
|
||||
@ -47,6 +49,7 @@ internal fun yakuEscaleraFull(contenedorGrupos: ContenedorGrupos): Boolean {
|
||||
if (c !is CartaNumero) return false
|
||||
|
||||
if (c.numero != numeroInicialSemiEscalera) return false
|
||||
if (c.color != colorCarta) return false
|
||||
|
||||
numeroInicialSemiEscalera += 1
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user