diff --git a/src/components/carta.vue b/src/components/carta.vue
index 7210b57..1356f87 100644
--- a/src/components/carta.vue
+++ b/src/components/carta.vue
@@ -1,5 +1,5 @@
-div(style="display: inline-block")
+div(@click="fnDescartar" style="display: inline-block")
div.c-carta(v-if="valor === 0")
div.c-carta-oculta(v-html="' '")
div.c-carta(v-else-if="tipo === 2 || tipo === 3 || tipo === 4 || tipo === 5" :class="'carta-' + tipoCarta")
@@ -104,11 +104,16 @@ export default defineComponent({
}
});
+ const fnDescartar = () => {
+ props.fnDescartar!!(props.valor);
+ }
+
return {
tipo,
tipoCarta,
valorC,
colorDragon,
+ fnDescartar,
pxesc
}
}
diff --git a/src/views/Ayuda/Ayuda.vue b/src/views/Ayuda/Ayuda.vue
index bc1b941..20a9534 100644
--- a/src/views/Ayuda/Ayuda.vue
+++ b/src/views/Ayuda/Ayuda.vue
@@ -278,9 +278,13 @@ div
grupo-cartas(:cartas="[2, 2, 3, 20, 20, 21, 34, 35, 52, 52, 53]")
div.yaku
- p 3 triples de J, Q y K
+ p 3 triples o cuádruples de J, Q y K
grupo-cartas(:cartas="[192, 192, 192, 224, 224, 224, 256, 256, 256, 16, 16]")
+ div.yaku
+ p Solo dragones, J, K y Q
+ grupo-cartas(:cartas="[64, 64, 64, 128, 128, 128, 192, 192, 192, 224, 224]")
+
div.yaku
p 1 par del mismo número, mismo color y mismo símbolo (no disponible)
diff --git a/src/views/Juego/Juego.vue b/src/views/Juego/Juego.vue
index 936e58c..359aabd 100644
--- a/src/views/Juego/Juego.vue
+++ b/src/views/Juego/Juego.vue
@@ -7,10 +7,15 @@ div
span(:style="{fontSize: `${pH * 10}px`}") {{ cartasRestantes }}
br
span(:style="{fontSize: `${pH * 2.5}px`}") Cartas restantes
- mano(:mano="mano2" :posicion="2" :esTurnoActual="turnoActual === obtClave(map, '2')")
- mano(:mano="mano3" :posicion="3" :esTurnoActual="turnoActual === obtClave(map, '3')")
- mano(:mano="mano4" :posicion="4" :esTurnoActual="turnoActual === obtClave(map, '4')")
- mano(:mano="mano1" :posicion="1" :esTurnoActual="turnoActual === obtClave(map, '1')")
+ mano(:mano="mano2" :posicion="2" :esTurnoActual="turnoActual === obtClaveMap('2')")
+ mano(:mano="mano3" :posicion="3" :esTurnoActual="turnoActual === obtClaveMap('3')")
+ mano(:mano="mano4" :posicion="4" :esTurnoActual="turnoActual === obtClaveMap('4')")
+ mano(
+ :mano="mano1"
+ :posicion="1"
+ :esTurnoActual="turnoActual === obtClaveMap('1')"
+ :fnDescartarCarta="descartarCarta"
+ )
//
@@ -187,6 +192,7 @@ export default defineComponent({
}
};
+ const obtClaveMap = (s: string) => obtClave(map, s);
return {
dora,
doraOculto,
@@ -197,7 +203,8 @@ export default defineComponent({
mano3,
mano4,
turnoActual,
- obtClave,
+ obtClaveMap,
+ descartarCarta,
pH,
ph,
pw,
diff --git a/src/views/Juego/components/contenedor-descartes.vue b/src/views/Juego/components/contenedor-descartes.vue
new file mode 100644
index 0000000..36829cb
--- /dev/null
+++ b/src/views/Juego/components/contenedor-descartes.vue
@@ -0,0 +1,80 @@
+
+div.cont-cuadrante-descarte(:class="claseTurnoActual")
+ div(v-for="cartas in grupoCartas")
+ carta(v-for="(c, i) in cartas" :valor="c" :escala="escala" :key="i")
+
+//
+
+
+
+
+
diff --git a/src/views/Juego/components/mano.vue b/src/views/Juego/components/mano.vue
index 8135b27..ae8e81d 100644
--- a/src/views/Juego/components/mano.vue
+++ b/src/views/Juego/components/mano.vue
@@ -1,7 +1,23 @@
div.cont-cuadrante-2-mano
+ contenedor-descartes(:cartas="mano.descartes" :esTurnoActual="esTurnoActual")
+ div.cont-opciones-mano
+ div.opcion-mano(v-if="hayTri" :style="{backgroundColor: '#3F51B5'}")
+ | Tri
+ div.opcion-mano(v-if="haySeq" :style="{backgroundColor: '#009688'}")
+ | Seq
+ div.opcion-mano(v-if="hayQuad" :style="{backgroundColor: '#9C27B0'}")
+ | Quad
+ div.opcion-mano(v-if="hayWin" :style="{backgroundColor: '#f44336'}")
+ | Win
+ div.opcion-mano(:style="{backgroundColor: '#9E9E9E'}")
+ | Ignorar
div.cuadrante-mano
carta(v-for="(c, i) in cartas" :valor="c" :movimiento="posiciones[i]" :fnDescartar="descartarCarta" :key="i")
+ carta(:valor="-1")
+ carta(:valor="mano.sigCarta" :fnDescartar="descartarCarta")
+ carta(:valor="-1")
+ carta(v-for="(c, i) in mano.cartasReveladas" :valor="c" :key="i")
//
@@ -10,6 +26,9 @@ div.cont-cuadrante-2-mano
import { computed, defineComponent, ref, watch } from "vue";
import { useDimensions } from "@/components/useDimensions";
import carta from "@/components/carta.vue";
+import contenedorDescartes from "./contenedor-descartes.vue"
+import { Mano } from "@/views/Juego/types/Mano";
+import { Oportunidad } from "@/views/Juego/types/Oportunidad";
const estaOrdenado = (nums: number[]) => {
for (let i = 0, j = 1; j < nums.length ; i++, j++) {
@@ -22,7 +41,7 @@ const esperar = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)
export default defineComponent({
name: "mano",
- components: {carta},
+ components: {carta, contenedorDescartes},
props: {
mano: Object,
posicion: Number,
@@ -33,11 +52,7 @@ export default defineComponent({
setup(props) {
const {pH, phx} = useDimensions();
const anchoCarta = computed(() => pH.value * 5 + 2 * (pH.value * 0.225))
- const cartas = ref(props.mano?.cartas);
- const entrada = props.mano?.sigCarta;
- const gruposAbiertos = props.mano?.cartasReveladas;
- const descartes = props.mano?.descartes;
- const ultimaCartaDescartada = props.oportunidades?.cartaDescartada ?? 0;
+ const cartas = ref((props.mano as Mano).cartas);
const posicion = props.posicion;
const esTurnoActual = props.esTurnoActual;
const oportunidades = props.oportunidades;
@@ -114,11 +129,42 @@ export default defineComponent({
posiciones.value = new Array(n.length).fill("none");
});
+ const hayTri = computed(() => {
+ for (const o of (props.mano!! as Mano).oportunidades) {
+ if (o.nombreOportunidad === "Tri") return true;
+ }
+ return false;
+ });
+
+ const haySeq = computed(() => {
+ for (const o of props.mano!!.oportunidades) {
+ if ((o as unknown as Oportunidad).nombreOportunidad === "Seq") return true;
+ }
+ return false;
+ });
+
+ const hayQuad = computed(() => {
+ for (const o of props.mano!!.oportunidades) {
+ if ((o as unknown as Oportunidad).nombreOportunidad === "Quad") return true;
+ }
+ return false;
+ });
+
+ const hayWin = computed(() => {
+ for (const o of props.mano!!.oportunidades) {
+ if ((o as unknown as Oportunidad).nombreOportunidad === "Win") return true;
+ }
+ return false;
+ });
return {
cartas,
posiciones,
descartarCarta,
+ hayTri,
+ haySeq,
+ hayQuad,
+ hayWin,
phx,
posicionW: computed(() => (90 * (5 - posicion!!)) + "deg")
}
@@ -129,6 +175,30 @@ export default defineComponent({