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() =
|
fun esCartaNegra() =
|
||||||
(valor in 2..21) || valor == 64
|
(valor in 2..21) || valor == 64
|
||||||
|
|
||||||
|
fun esRey() = valor == 192 || valor == 224 || valor == 256
|
||||||
|
|
||||||
fun esDragonORey() =
|
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)) {
|
if (yakuDobleSecuenciaPura(contenedorGrupos)) {
|
||||||
listaYakus.add(Yaku.DobleSecuenciaPura)
|
listaYakus.add(Yaku.DobleSecuenciaPura)
|
||||||
}
|
}
|
||||||
if (yakuRealeza(contenedorGrupos)) {
|
val cantidad = yakuRealeza(contenedorGrupos)
|
||||||
|
if (cantidad > 0) {
|
||||||
listaYakus.add(Yaku.Realeza)
|
listaYakus.add(Yaku.Realeza)
|
||||||
}
|
}
|
||||||
if (yakuTripleSecuenciaCerrada(contenedorGrupos)) {
|
if (!esManoAbierta && yakuTripleSecuenciaCerrada(contenedorGrupos)) {
|
||||||
listaYakus.add(Yaku.TripleSecuenciaCerrada)
|
listaYakus.add(Yaku.TripleSecuenciaCerrada)
|
||||||
}
|
}
|
||||||
if (verificarTripleTriples && yakuTripleTriples(contenedorGrupos)) {
|
if (verificarTripleTriples && yakuTripleTriples(contenedorGrupos)) {
|
||||||
@ -116,7 +117,8 @@ fun obtenerListaYakus(contenedorGrupos: ContenedorGrupos, esManoAbierta: Boolean
|
|||||||
if (yakuInterior(contenedorGrupos)) {
|
if (yakuInterior(contenedorGrupos)) {
|
||||||
listaYakus.add(Yaku.Interior)
|
listaYakus.add(Yaku.Interior)
|
||||||
}
|
}
|
||||||
if (yakuDragones(contenedorGrupos)) {
|
val cantidadDragon = yakuDragones(contenedorGrupos)
|
||||||
|
if (cantidadDragon > 0) {
|
||||||
listaYakus.add(Yaku.Dragones)
|
listaYakus.add(Yaku.Dragones)
|
||||||
}
|
}
|
||||||
if (yakuParUnico(contenedorGrupos)) {
|
if (yakuParUnico(contenedorGrupos)) {
|
||||||
|
@ -1,36 +1,68 @@
|
|||||||
package dev.araozu.juego.yaku
|
package dev.araozu.juego.yaku
|
||||||
|
|
||||||
|
import dev.araozu.juego.CartaNumero
|
||||||
import dev.araozu.juego.ContenedorGrupos
|
import dev.araozu.juego.ContenedorGrupos
|
||||||
|
|
||||||
|
// TODO
|
||||||
internal fun yakuDobleSecuenciaPura(contenedorGrupos: ContenedorGrupos): Boolean {
|
internal fun yakuDobleSecuenciaPura(contenedorGrupos: ContenedorGrupos): Boolean {
|
||||||
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun yakuRealeza(contenedorGrupos: ContenedorGrupos): Boolean {
|
internal fun yakuRealeza(contenedorGrupos: ContenedorGrupos): Int {
|
||||||
|
var cantidadRealeza = 0
|
||||||
return false
|
for (carrl in contenedorGrupos.tris) {
|
||||||
|
val cartaTri = carrl[0]
|
||||||
|
if (cartaTri.esRey()) cantidadRealeza++
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun yakuTripleSecuenciaCerrada(contenedorGrupos: ContenedorGrupos): Boolean {
|
return cantidadRealeza
|
||||||
|
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal fun yakuTripleSecuenciaCerrada(contenedorGrupos: ContenedorGrupos) =
|
||||||
|
contenedorGrupos.tris.size == 3
|
||||||
|
|
||||||
internal fun yakuTripleTriples(contenedorGrupos: ContenedorGrupos) =
|
internal fun yakuTripleTriples(contenedorGrupos: ContenedorGrupos) =
|
||||||
contenedorGrupos.tris.size == 3
|
contenedorGrupos.tris.size == 3
|
||||||
|
|
||||||
internal fun yakuInterior(contenedorGrupos: ContenedorGrupos): Boolean {
|
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 {
|
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 primeraCarta = false
|
||||||
var numeroActual = 0
|
var numeroActual = 0
|
||||||
var colorCarta = ""
|
var colorCarta = ""
|
||||||
for (carrl in contenedorGrupos.tris) {
|
for (carrl in contenedorGrupos.seqs) {
|
||||||
for (c in carrl) {
|
for (c in carrl) {
|
||||||
if (c !is CartaNumero) return false
|
if (c !is CartaNumero) return false
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user