Saltar al contenido

"Jugar" al poker


Antoni

Recommended Posts

Creo que el valor del aporte de Pedro no es es la fórmula en si, ya que de hecho se trata de un rango. Lo verdaderamente importante para mi, es haber descubierto que a una imagen se le puede aplicar una fórmula, cosa que yo desconocía.

No es solo para imagenes, cualquier objeto tiene la opcion de formulas, cuando los incrustas veras arriba que te permite asignarles una formula. Me ha sorprendido que lo descubras ahora despues de tantos paises conquistados, esta creo que fué una de las primeras cosas que aprendí en excel.

Todos los dias se aprende algo nuevo!

Un saludo.

Enlace a comentario
Compartir con otras webs

Hola Jorge, delete significa borrar en inglés y es lo que ocurre.

Con visible sólo se ocultan o muestran las imágenes y los índices de los shapes deben seguir siendo los mismos.

El problema de desfase de índices ocurrirá si se borran aleatoriamente con delete los shapes.

Si no se quieren borrar todos a la vez con el código que has indicado, lo normal será borrar primero el índice más alto con un for..next decreciente o con:

Do While Cht.Shapes.Count > 0
Cht.Shapes(Cht.Shapes.Count).Delete
Loop[/CODE]

Enlace a comentario
Compartir con otras webs

Hola amigos Santi y Antonio, Excel tiene mucho tomate escondido y lo importante es seguir bregando para extender el Imperio Excel a los países de habla hispana que aún no han sido conquistados.

En el diccionario de la rae.es se dice de:

valer un imperio alguien o algo.

1. loc. verb. coloq. Ser excelente o de muchísimo mérito.

Para aprender más, pienso que faltan foreros y foreras que, siendo EXCELentes, compartan sus opiniones y sus conocimientos porque siempre somos los mismos...

Enlace a comentario
Compartir con otras webs

Invitado jorgetchake

Saludos…

Lo hice,…. Usando las barajas de MA y la fórmula de VerZulSan, con la variante propuesta por MA,…. El uso de la fórmula me permitió dejar las columnas como el original,…. Funcionar funciona,… debo revisar porque está tan lento,… me temo que sea por el manejo de las imágenes.

Para mi lo importante en estos momentos es que tengo el gusto de ver las barajas casi como son realmente,….

En la versión adjunta,… incluso eliminé la hoja Tapete.

Amigos,… nuevamente muchas gracias por la ayuda.

Cordiales saludos.

juego-poker-let-and-raid.diseño7.zip

Enlace a comentario
Compartir con otras webs

Hola Pit, ellos se lo pierden. Tampoco somos tan pocos, podriamos ser mas si, pero... ¿Y lo bien que nos lo pasamos cuando nos quebramos la cabeza buscando soluciones?, para mi esto es como hacer sudokus;adictivo, te da agilidad mental, te entretiene en los ratos libres, ¿que mas se puede pedir?

Muy currado te está quedando Jorge si señor.

Un saludo a todos.

Enlace a comentario
Compartir con otras webs

Invitado jorgetchake

Especiales saludos,…

Hasta ahora,…. Mi jueguito está funcionando muy bien,…. Logré mejorar la velocidad de proceso,.. ayer les decía que temía que la lentitud fueran por las imágenes que se manejan,… VZS (perdón la confianza,.. me refiero a VerZulSan) cuando explicó que los Pictures podían tener una fórmula,… pues ésta hace que constantemente se esté cargando el rango que contiene la imagen que queremos visualizar,…. Lo que hice y hasta ahora funciona es, después de insertar la fórmula la borro y queda la imagen congelada,… por lo tanto no se hace el refresco de la pantalla constantemente ganando un tiempo muy importante. Si pueden,…. comparen los tiempos de la versión de ayer con la que adjunto. Ni idea tengo si es lógico,… al menos todo funciona como debe ser.

No sé si se podría lograr el mismo efecto con el Metodo Calculate,… intercambiándolo entre manual y automático,… pero no entendí un pepino.

El barajado del mazo,.. se hace cada 10 pases,… antes de la modificación,… el barajado duraba unos cuantos segundos,…. Ahora casi ni se puede leer el cartel de ‘Espere estoy Barajando’,… y bueno así son las cosas y que grande es el Excel.

Amigos …. Mis respetos.

Cordiales saludos.

juego-poker-let-and-raid.diseño8.zip

Enlace a comentario
Compartir con otras webs

Jorge, la verdad es que no noto mucha diferencia, practicamente ninguna, he borrado todas las lineas que has puesto de Formula = "" y o mi ordenador es muy rapido o no se... solo he notado que con la version 2007 da errores 1004, pero eso si que debe ser de mi pc, tampoco lo he investigado mucho.

De todas formas, te creo que te vaya mas rapido, para no tener que poner constantemente Formula = "", basta con que lo pongas una sola vez dentro de la propia funcion Card y listo, ya te la borra antes de salir.

Un saludo currante.

Edit: Edito para darte toda la razon del mundo Jorge, se me vino a la cabeza de nuevo el problema tuyo y caí en lo que decia Antoni, es una formula y como tal, actua de la misma manera, cada vez que hay cambios en la pagina, se refresca automaticamente todas las formulas de la pagina, y al ser esta una imagen, ha de cargarlas totalmente ampliando el tiempo de espera considerablemente aun que en algunos ordenadores apenas se note.

Gracias por darte cuenta y corregirlo.

Un saludo!

Enlace a comentario
Compartir con otras webs

Invitado jorgetchake

Estimado Verzulsan

Espero no molestarte (mucho),… pero no pude borrar la fórmula como me sugeriste,…

De todas formas, te creo que te vaya mas rapido, para no tener que poner constantemente Formula = "", basta con que lo pongas una sola vez dentro de la propia funcion Card y listo, ya te la borra antes de salir.

Al no lograrlo,… se me ocurrió lo siguiente,.. creando una matriz.

Dim ncarta(1 To 5) As Picture

With Sheets("Let y Raid")
For en = 1 To 5
Set ncarta(en) = .Pictures("ncarta" & en)
ncarta(en).Formula = Card2(.Range("V3" & en - 1).Value) ‘’ valor de V30 a V34
ncarta(en).Formula = "" 'al borrar la fórmula,... queda congelada la imagen
Next en
End With[/CODE]

Lo estoy probando y va bien,… pero me quedaré tranquilo si me confirmas si es correcto o no.

Mi duda surge porque al declarar la matriz,… en la lista desplegable que sale al poner AS, no figura el Picture,…. Igualmente lo puso en mayúscula como hace con todo lo que es reconocido por el sistema.

Muchas gracias y disculpa por el abuso.

Cordiales saludos.

Enlace a comentario
Compartir con otras webs

Adjunto cartas del póquer en español para diferenciarlas del poker inglés.

Además de los clásicos póquer abierto y cerrado, incluyo el juego de Corazones

Como dijo Macro Antonio en el primer post de este tema, de "Jugar" al poker nada de nada.

Ahora las cartas ya no existen, ¡se pintan según convenga!, ya que son automáticamente generadas "al vuelo" con macros, resultando estas cartas:

5b4sk6.jpg

ioyama, verzulsan, jorgetchake, espero que paséis tan buenos ratos como yo los he pasado construyéndolo desde scratch y sin un solo Copy o CopyPicture!!!

POQUER_PW1.zip

Enlace a comentario
Compartir con otras webs

Hola a todos los del hilo.

Voy escaso de tiempo, las proximas dos semanas apenas visitaré el foro puesto que estoy a tope de examenes y trabajos.

Jorge, ya te comentaré sobre tu pregunta cuando tenga algo de tiempo.

Pegones, dejo aqui un link de poker en excel, tiene formas de excel aun que claro, sin caracteres pero está muy bien, ademas de tener otros juegos hechos intregramentes en excel.

http://www.excelgames.org/blackjack.asp

Un saludo, y a ver si tengo suerte las proximas dos semanas.

Enlace a comentario
Compartir con otras webs

verzul, ¿qué haces aquí? ¡a estudiar!

El juego del link que adjuntas tiene las imágenes de las 52 cartas insertadas como formas (shapes)

En nuestras versiones las cartas toman forma en las propias celdas de Excel, con programación automática en VBA.

Ya sé que falta la lógica del juego pero eso no es Excel, son algoritmos en macros.

Veo que has cambiado tu firma. Como comentario esta otra de Einstein:

ExcelFormulas = Macros * Cálculo^2

Enlace a comentario
Compartir con otras webs

Hola Macro Antonio, tengo que poner peros a tu macro para repartir las cartas.

Repartida(Palo * Naipe)

Esta fórmula no reparte bien porque con Palo=1 y Naipe=3 se piensa que ya se ha repartido el Palo=3 y el Naipe=1, por la propiedad conmutativa de la multiplicación. Además se produce un bucle infinito si se reparten 52 cartas.

Es más correcta esta fórmula que realmente ocupa un booleano para cada carta:

Repartida((Palo - 1) * 13 + Naipe)

En el adjunto POQUER_PW1.xls que publiqué en el post #34 empleé una matriz del tipo:

Repartida(3, 12) As Boolean

Repartida(Palo - 1, Naipe - 1)

Para los que no estén acostumbrados, las matrices comienzan por defecto en el índice 0, por lo que va de 0 a 3 (4 palos) y de 0 a 12 (13 valores).

Enlace a comentario
Compartir con otras webs

Para los que no estén acostumbrados, las matrices comienzan en el índice 0, por lo que va de 0 a 3 (4 palos) y de 0 a 12 (13 valores).

Para evitar confundirme a mi mismo siempre antecedo el Modulo con Option Base 1, lo cual permite que las matrices comiencen con el uno.

Saludos

Enlace a comentario
Compartir con otras webs

...Para los que no estén acostumbrados, las matrices comienzan por defecto en el índice 0, por lo que va de 0 a 3 (4 palos) y de 0 a 12 (13 valores)...

Las matrices comienzan donde les digamos que comiencen, si no lo indicamos, como dices Pedro, las matrices inician en 0.

A mi, personalmente, me parece extramadamente recomendable especificar siempre el inicio y el fin de cada dimensión de la matriz (así es perfectamente claro para cualquiera en dónde inicia y termina cada dimensión de la matriz):

Repartida(0 to 3,0 to 12) As Boolean[/CODE]

ó

[CODE]Repartida(1 to 4,1 to 13) As Boolean[/CODE]

Enlace a comentario
Compartir con otras webs

Concuerdo contigo Mauricio, sin embargo en casos como el que expongo abajo me parece que no existe forma de especificar previamente el inicio a no ser con Option Base 1, si me equivoco bienvenida sea la corrección.

Sub Test()
Dim vBase as Variant
vBase = Range(“BaseDeDatos”)
etc.......
End sub[/CODE]

Saludos

Enlace a comentario
Compartir con otras webs

Hola a todos:

Yo como ya tengo el cerebro un poco seco desde hace bastante, se me hace muy cuesta arriba eso de que el primer elemento es el cero el segundo es el uno, etc, etc....

Por eso ya he borrado de mi mente lo de Option Base, simplemente el 1 es el 1 el 2 es el 2 y así sucesivamente,y de cuando en cuando utilizo el elemento cero para marcar algún detalle que me interesa.

Pedro: Llevo unas semanas muy apretado de tiempo, pero no he dejado el tema, prometo mirarme todos los palos (por lo de los naipes), y nunca mejor dicho, que me habeis dado.

Saludos.

Enlace a comentario
Compartir con otras webs

Macro, ya sabes que con buenos palos y maderas hacían sus barcos los faraones egipcios...

En el fichero del post #34 lo único que son fotos son las J, Q y K, lo demás está generado con macros, ¡como a tí te gusta!

Como vengo de otros lenguajes en que las arrays comienzan en 0, siempre pienso así, aunque ¡ahora que pienso! el naipe 0 puede ser el COMODÍN o JOKER (no confundirlo con POKER) :mad:

Enlace a comentario
Compartir con otras webs

Invitado jorgetchake

Estimados amigos

En el post 35, Verzulsan nos dio referencias al trabajo hecho por un brasilero,… el programa corresponde al juego de Black Jack, que usa las mismas cartas que el Póker.

De ese programa copié las cartas y las incluí en mi juego Let & Raid,…. Se ven bastante bien,… lo que no sé es como fue hecho,.

Al incluir esas cartas,… se agrandó tanto el libro que supera la cantidad máxima prevista en las reglas del foro,… por eso para poder enviarlo hice dos libros,… uno que es el juego propiamente dicho y el otro con las cartas,… al cargarse el juego,… en el evento Open de ThisWorkBook, testeo si el libro ya tiene las cartas,… si no las tiene las tomará del libro adjunto con las cartas. Una vez que el juego esté ejecutable,… grábenlo para prescindir del libro con las cartas.

Espero les funcione,…

Cordiales saludos

Cartas-poker-reales.zip

juego-let-and-raid-solo-codigo.zip

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 96 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Buenas perdonad la espera adjunto el fichero Excel y explico mas detallado lo que me solicitan: Lo que me solicitan es que esos CP de la pestaña Casos de prueba los cuales tienen formulas para que cuando se copien y peguen junto a sus pasos el CP se va autoincrementando a 1,2,3 etc...., pero si copias ese CP bien solo con el primer paso o con todos sus  pasos y lo insertas entre dos CP no continua con la numeración, como se ve en la foto al hacer eso el CP insertado continua con la numeración CP2 y el de abajo pone también CP2 no se incrementa ni ese ni el valor de CU que hay a la derecha que también es incremental. Necesitaría que continuara con esa numeración aun insertándolo entre medio de 2 tanto el CP como el CU de la derecha. También me solicitan que el campo Ciclo 1 de la pestaña Resumen es auto incremental cuando copias y pegas va sumando 1, pero en las formulas referentes a Ok KO Y bloqueo al copiar y pegar se mantiene la misma formula , la idea es que cuando copies y pegues la fila donde están los ciclos se autoincremente Ciclo a 1,2,3,4 etc... y la formula de los campos OK,KO y Bloqueos se incremente también pasando de la columna I a la J  luego a la k etc... y que en Resultados Ciclo el numero de la formula también se incremente Resultados Ciclo 1 , 2 ,3 etc... que cambie la columna a la vez que el numero de Resultados Ciclo. Gracias por adelantado un saludo. Plantilla v3 Pruebas.xlsx  
    • Saludos amigos espero estén bien Estoy intentando hacer un formulario que me convierta unidades de masa sin embargo  en el mejor de los casos solo he podido lograr la conversión de una unidad a la vez en los TextBox 1, 3, 5, 7, 9, 11 y 13 y cuando lo logro el resultado que se copia  en la celda no se corresponde con el obtenido originalmente en el Textbox del Formulario (frmconv)  ejemplo al convertir 1900 Kg a Lb el resultado en el TextBox1 =4188,78298142 sin embargo al guardar el resultado lo que se copia en la Celda  "F11" es  418.878.298.142,00, adicionalmente el resultado de la conversión no se visualiza inmediatamente por lo que debo de hacer click en los TextBox 1, 3, 5, 7, 9, 11 y 13  para ver el resultado. Mucho les sabre agradecer la ayuda que me puedan brindar. PRUEBA.xlsm
    • Saludos a ambos. Copiar y pegar por sí solas, no tengo el conocimiento de que sirvan como "evento" para actualizar las referencias que buscas hacer, en la forma que lo quieres hacer, ó la fórmula como la quieres hacer. Te recomiendo abrir un tema similar en Macros, es posible que algún Maestro te de alguna idea. Por otro lado, si debe ser con funciones, entonces tendías que interactuar con COLUMNA() y FILA() para que al pegar el destino "sepa" donde está ubicado e intentar cambiar la referencia. =INDIRECTO(CARACTER(COLUMNA()+64)&FILA()) Algo como eso se podría usar para obtener el código ASCII de la letra de la columna (donde 65 es el código para “A”), y FILA() devuelve el número de la fila. La función CARACTER() convierte el código ASCII en una letra. Luego, INDIRECTO() toma la cadena resultante (por ejemplo, “A1”, “B2”, etc.) y la usa como una referencia de celda. En ese caso, una posible idea de editar tu ejemplo sería: =SI(INDIRECTO("'Casos de Prueba'!"&CARACTER(COLUMNA()+64)&"1")="Resultados Ciclo 1"; SI(CONTAR.SI(INDIRECTO("'Casos de Prueba'!"&CARACTER(COLUMNA()+64)&":"&CARACTER(COLUMNA()+64)); "OK")=0; 0; CONTAR.SI(INDIRECTO("'Casos de Prueba'!"&CARACTER(COLUMNA()+64)&":"&CARACTER(COLUMNA()+64)); "OK")); 0)   Enfatizo que es una idea, es muy probable que haya que editar. Así como esta su tema, la recomendación del maestro toma relevancia porque especular o deducir no es lo adecuado para intentar ayudar en este tipo de consultas. Por esta causa de mi parte por ejemplo no puedo aportar algo adicional.
    • En el ejemplo te he puesto 1 segundo para no hacer largo el gif, cámbialo a tu necesidad
    • Sub RecorrerRangoC() Set hoja = ActiveSheet Set rango = hoja.Range("C2:C" & hoja.Cells(hoja.Rows.Count, "C").End(xlUp).Row) If rango.Cells.Count = 0 Then MsgBox "No hay datos en la columna C.", vbExclamation Exit Sub End If For Each celda In rango.SpecialCells(xlCellTypeVisible) celda.Select Application.Wait Now + TimeValue("00:00:01") Next celda End Sub Prueba y comenta
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.