Agregados varios yaku3. Arreglado error en yaku escalera
This commit is contained in:
parent
1621df991f
commit
d24409721e
@ -30,8 +30,10 @@ sealed class Carta(val valor: Int) {
|
||||
fun esCartaNegra() =
|
||||
(valor in 2..21) || valor == 64
|
||||
|
||||
fun esRey() = valor == 192 || valor == 224 || valor == 256
|
||||
|
||||
fun esDragonORey() =
|
||||
valor == 64 || valor == 96 || valor == 128 || valor == 160 || valor == 192 || valor == 224 || valor == 256
|
||||
valor == 64 || valor == 96 || valor == 128 || valor == 160 || esRey()
|
||||
|
||||
}
|
||||
|
||||
|
@ -104,10 +104,11 @@ fun obtenerListaYakus(contenedorGrupos: ContenedorGrupos, esManoAbierta: Boolean
|
||||
if (yakuDobleSecuenciaPura(contenedorGrupos)) {
|
||||
listaYakus.add(Yaku.DobleSecuenciaPura)
|
||||
}
|
||||
if (yakuRealeza(contenedorGrupos)) {
|
||||
val cantidad = yakuRealeza(contenedorGrupos)
|
||||
if (cantidad > 0) {
|
||||
listaYakus.add(Yaku.Realeza)
|
||||
}
|
||||
if (yakuTripleSecuenciaCerrada(contenedorGrupos)) {
|
||||
if (!esManoAbierta && yakuTripleSecuenciaCerrada(contenedorGrupos)) {
|
||||
listaYakus.add(Yaku.TripleSecuenciaCerrada)
|
||||
}
|
||||
if (verificarTripleTriples && yakuTripleTriples(contenedorGrupos)) {
|
||||
@ -116,7 +117,8 @@ fun obtenerListaYakus(contenedorGrupos: ContenedorGrupos, esManoAbierta: Boolean
|
||||
if (yakuInterior(contenedorGrupos)) {
|
||||
listaYakus.add(Yaku.Interior)
|
||||
}
|
||||
if (yakuDragones(contenedorGrupos)) {
|
||||
val cantidadDragon = yakuDragones(contenedorGrupos)
|
||||
if (cantidadDragon > 0) {
|
||||
listaYakus.add(Yaku.Dragones)
|
||||
}
|
||||
if (yakuParUnico(contenedorGrupos)) {
|
||||
|
@ -1,36 +1,68 @@
|
||||
package dev.araozu.juego.yaku
|
||||
|
||||
import dev.araozu.juego.CartaNumero
|
||||
import dev.araozu.juego.ContenedorGrupos
|
||||
|
||||
// TODO
|
||||
internal fun yakuDobleSecuenciaPura(contenedorGrupos: ContenedorGrupos): Boolean {
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
internal fun yakuRealeza(contenedorGrupos: ContenedorGrupos): Boolean {
|
||||
|
||||
return false
|
||||
internal fun yakuRealeza(contenedorGrupos: ContenedorGrupos): Int {
|
||||
var cantidadRealeza = 0
|
||||
for (carrl in contenedorGrupos.tris) {
|
||||
val cartaTri = carrl[0]
|
||||
if (cartaTri.esRey()) cantidadRealeza++
|
||||
}
|
||||
|
||||
internal fun yakuTripleSecuenciaCerrada(contenedorGrupos: ContenedorGrupos): Boolean {
|
||||
|
||||
return false
|
||||
return cantidadRealeza
|
||||
}
|
||||
|
||||
internal fun yakuTripleSecuenciaCerrada(contenedorGrupos: ContenedorGrupos) =
|
||||
contenedorGrupos.tris.size == 3
|
||||
|
||||
internal fun yakuTripleTriples(contenedorGrupos: ContenedorGrupos) =
|
||||
contenedorGrupos.tris.size == 3
|
||||
|
||||
internal fun yakuInterior(contenedorGrupos: ContenedorGrupos): Boolean {
|
||||
|
||||
return false
|
||||
for (carrl in contenedorGrupos.seqs) {
|
||||
for (c in carrl) {
|
||||
if (c !is CartaNumero) return false
|
||||
if (c.esExterior()) return false
|
||||
}
|
||||
}
|
||||
|
||||
internal fun yakuDragones(contenedorGrupos: ContenedorGrupos): Boolean {
|
||||
for (carrl in contenedorGrupos.tris) {
|
||||
for (c in carrl) {
|
||||
if (c !is CartaNumero) return false
|
||||
if (c.esExterior()) return false
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
for (carrl in contenedorGrupos.pares) {
|
||||
for (c in carrl) {
|
||||
if (c !is CartaNumero) return false
|
||||
if (c.esExterior()) return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
// TODO
|
||||
internal fun yakuDragones(contenedorGrupos: ContenedorGrupos): Int {
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
internal fun yakuParUnico(contenedorGrupos: ContenedorGrupos): Boolean {
|
||||
val par = contenedorGrupos.pares[0]
|
||||
val c1 = par[0]
|
||||
val c2 = par[1]
|
||||
|
||||
return false
|
||||
if (c1 !is CartaNumero || c2 !is CartaNumero) return false
|
||||
|
||||
return c1.valor == c2.valor
|
||||
}
|
||||
|
@ -102,7 +102,7 @@ internal fun yakuEscalera(contenedorGrupos: ContenedorGrupos): Boolean {
|
||||
var primeraCarta = false
|
||||
var numeroActual = 0
|
||||
var colorCarta = ""
|
||||
for (carrl in contenedorGrupos.tris) {
|
||||
for (carrl in contenedorGrupos.seqs) {
|
||||
for (c in carrl) {
|
||||
if (c !is CartaNumero) return false
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user