From bfb91ce6a50d021b530501997e57794ea2ec7381 Mon Sep 17 00:00:00 2001 From: Araozu Date: Wed, 21 Oct 2020 07:04:32 -0500 Subject: [PATCH] Terminadas funciones en yaku10.kt --- src/juego/Carta.kt | 3 +++ src/juego/yaku/yaku10.kt | 29 ++++++++++++++++++++++++++++- src/juego/yaku/yaku15.kt | 2 +- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/juego/Carta.kt b/src/juego/Carta.kt index 321ab28..a49cd25 100644 --- a/src/juego/Carta.kt +++ b/src/juego/Carta.kt @@ -24,6 +24,9 @@ sealed class Carta(val valor: Int) { fun esCartaVerde() = valor == 128 || valor == 192 || valor == 224 || valor == 256 + fun esDragonORey() = + valor == 64 || valor == 96 || valor == 128 || valor == 160 || valor == 192 || valor == 224 || valor == 256 + } sealed class CartaNumero(valor: Int, val numero: Int = (valor shl 27) ushr 28) : Carta(valor) { diff --git a/src/juego/yaku/yaku10.kt b/src/juego/yaku/yaku10.kt index d83f742..557f52f 100644 --- a/src/juego/yaku/yaku10.kt +++ b/src/juego/yaku/yaku10.kt @@ -1,13 +1,40 @@ package dev.araozu.juego.yaku +import dev.araozu.juego.CartaRealeza import dev.araozu.juego.ContenedorGrupos internal fun yakuRealezaDragones(contenedorGrupos: ContenedorGrupos): Boolean { - return false + for (carrl in contenedorGrupos.seqs) { + for (c in carrl) { + if (!c.esDragonORey()) return false + } + } + + for (carrl in contenedorGrupos.tris) { + for (c in carrl) { + if (!c.esDragonORey()) return false + } + } + + for (carrl in contenedorGrupos.pares) { + for (c in carrl) { + if (!c.esDragonORey()) return false + } + } + + return true } internal fun yakuRealezaFull(contenedorGrupos: ContenedorGrupos): Boolean { + if (contenedorGrupos.tris.size != 3) return false + + for (carrl in contenedorGrupos.tris) { + for (c in carrl) { + if (c !is CartaRealeza) return false + } + } + return false } diff --git a/src/juego/yaku/yaku15.kt b/src/juego/yaku/yaku15.kt index 9aec79d..d5a8cd1 100644 --- a/src/juego/yaku/yaku15.kt +++ b/src/juego/yaku/yaku15.kt @@ -23,7 +23,7 @@ internal fun yakuDragonesFull(contenedorGrupos: ContenedorGrupos): Boolean { } } - return false + return true } internal fun yakuVerde(contenedorGrupos: ContenedorGrupos): Boolean {