From 9641f03cb3c3780a4d3a69b0fc9b50edf7458ebf Mon Sep 17 00:00:00 2001 From: Araozu Date: Mon, 5 Oct 2020 21:32:58 -0500 Subject: [PATCH] Agregada funcionalidad descartar carta Agregados botones para Seq/Tri/Quad/Win --- src/components/carta.vue | 7 +- src/views/Ayuda/Ayuda.vue | 6 +- src/views/Juego/Juego.vue | 17 ++-- .../Juego/components/contenedor-descartes.vue | 80 ++++++++++++++++++ src/views/Juego/components/mano.vue | 82 +++++++++++++++++-- src/views/Juego/types/Mano.ts | 10 +++ src/views/Juego/types/Oportunidad.ts | 15 ++++ 7 files changed, 204 insertions(+), 13 deletions(-) create mode 100644 src/views/Juego/components/contenedor-descartes.vue create mode 100644 src/views/Juego/types/Mano.ts create mode 100644 src/views/Juego/types/Oportunidad.ts 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 @@ @@ -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 @@ + + + + + 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 @@ @@ -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({