Saltar al contenido

Un juego solitario


pegones1

Recommended Posts

publicado

rolano, a Excel 2003 hay que dárselo masticado:

Tapete.Pictures(Application.Caller).select
Selection.ShapeRange.ZOrder msoBringToFront
[/CODE]

Gerson ya se que lo haces con buena voluntad.

Para ser β-tester hay que ser más explícito, indicando la rutina y la sentencia dónde se produce el error.

Como sólo tengo instalado el visor de Excel 2003, no puedo ver las macros corriendo y es cómo si estuviera en la pista de carreras dando palos de ciego.

[color=navy]Solitario en construcción, ¡disculpen las molestias![/color]

SOLITARIO_PW12.zip

publicado

Pedro

Me he llevado una sorpresa con 2007, una vez comienza a cargar, me muestra el error:

unaCarta = Baraja.Cells((contCarta - 1) * 6 + 9, 1).Value
.Name = unaCarta
[COLOR=Red][B].Formula = FormulaCarta(contCarta, VisionCarta)[/B][/COLOR][/CODE]

Y doy clic en "Finalizar" y otro error:

[CODE]Sub BorrarFormulas()
Dim numImagen As Integer

With Tapete
For numImagen = 1 To .Pictures.Count
[COLOR=Red] [B] .Pictures(numImagen).Formula = ""[/B][/COLOR]
Next
End With
End Sub[/CODE]

Y sabes que? en 2003 parece funcionar todo bien, hasta que deseo dar a la baraja, para continuar buscando alguna que se me haya escapado, a menos que sea una limitante de tu gran desarrollo y debo de reiniciar el juego?

Saludos

publicado

Gerson, por supuesto que se puede acabar la partida del solitario y buscar las cartas dando la vuelta al montón de arriba a la izquierda. Por favor, dime la subrutina y la instrucción a depurar en Excel 2003 o mejor inténtalo tu mismo y me lo cuentas.

Eso sí, por lo que cuentas hasta ahora sólo se puede jugar al solitario en Excel 2010 porque también es una sorpresa para mí lo que te pasa en Excel 2007, justo al cargar la Formula en los objetos Picture que son el kit de la cuestión para visualizar las 52 cartas en el tapete.

Me siento muy enojado con la presunta compatibilidad de las versiones de Excel pero aún más con todas las incompatibilidades de VBA. Hay más herramientas de compatibilidad para usar versiones de Office anteriores en las nuevas que para diseñar en sentido contrario.

Gerson, ¿sabes de que se me queja el Inspector, del método select y de las propiedades top y left. ¿Qué hago? ¿los quito y dejo de seleccionar y mover las cartas?

¡ES ABSURDO!

¿Cuántas sorpresas más nos tiene deparadas Micro$oft Office?

La Guía de evaluación y corrección de compatibilidad de aplicaciones para Office 2010 nos indica el camino a seguir para no perdernos en cuanto a:

Comprobación de macros y scripts:

Ee819096.69d84bf6-94e3-4619-a5be-3eb3e129705c(es-es,office.14).gif

Macronianos y Formulianos unidos, ¡¡¡jamás serán vencidos!!!

publicado

Pedro

Gerson, ¿sabes de que se me queja el Inspector, del método select y de las propiedades top y left. ¿Qué hago? ¿los quito y dejo de seleccionar y mover las cartas?

¡ES ABSURDO!

Sabes que debemos hacer todos (bueno lo que siempre busca M.O.) que nos actualicemos, pero Excel 2007 si que me ha avergonzado con tanto error, y bueno 2003 parece superarlo testeando tu pintura, dejame ver que puedo hacer con el error (al llegar a casa), aunque me da terror tocar tu magiaexcelarte jeje

Saludos

publicado

Pedro

Que puedo decir.... estoy un poco mudo y con la boca abierta, funciona perfecto!!!

Pero lamentablemente encontre un pero, no me deja apilar el 4-3 en 10-5, observa la imagen (cuando arrastro y la suelto me la regresa donde estaba, o sea al tercer palo)

[ATTACH]22186.vB[/ATTACH]

Saludos mi estimado y gracias por tomarte las molestias:)

edito: sigo jugando y bueno parece que es un fallo (no error), desde la baraja intento mover el 6 de corazones debajo del 7 trebol pero no me deja:mad:

post-9328-145877002711_thumb.jpg

publicado

Gerson, si que deja, lo que pasa es que hay que arrastrar el grupo de cartas un poco a la izquierda, al nivel del 10 de la imagen. Si se arrastra y suelta hacia la derecha se sale de los márgenes prefijados en la subrutina ReglasJuego del módulo modReglas que chequea dónde se sueltan las cartas. He modificado estos valores:

                            Select Case finLeft
Case 5 To 91
columna = 1
Case 149 To 235
columna = 2
Case 293 To 379
columna = 3
Case 437 To 523
columna = 4
Case 581 To 667
columna = 5
Case 725 To 811
columna = 6
Case 869 To 955
columna = 7
Case Else
columna = 0
End Select[/CODE]

Debería relacionarlos con la hoja de posiciones izquierdas de las cartas, [b]CartasLeft[/b], pero lo dejo para una próxima mejora.

Subo estos casos modificados para abrir el abanico donde soltar las cartas y ahora espero que, como [b]el mejor β-tester[/b] de este juego, puedas finalizar una partida en solitario. :mad:

SOLITARIO_PW21.zip

publicado

Gracias Gerson, te diré que en Excel 2003 hace falta presionar más de una vez una carta vuelta para poder arrastrarla.

Si miras las macros, verás que lo que en Excel 2010 se consigue sin seleccionar la carta, en Excel 2003 hace falta un Select antes de cambiar la fórmula de la imagen.

Esto se ve sobre todo en la rutina PilaCartas del módulo modReglas

        If esExcel2003 Then
Tapete.Shapes(unaCarta).Select
Selection.Formula = FormulaCarta(numCarta, False)
Else
Tapete.Pictures(unaCarta).Formula = FormulaCarta(numCarta, False)
End If[/CODE]

Si alguien sabe como resolverlo le agradecería que no se callara...

publicado

Pedro, un trabajo muy bueno.

Efectivamente no iban con 2000, 2003 ni 2007 en la primera version, pero si que va bien con la ultima version. No puedo decirte en publico nada que no te haya dicho nadie, excepto esto, soltar la carta en el monton me ha dejado boquiabierto, te ha quedado perfecto y me habria encantado descifrarlo, Eres un makina amigo.

Sobre lo de clickar en tapete para minimizar, quizas seria mejor idea una combinacion de teclado, si viene el jefe, con los nervios puedes hacer click en cualquier sitio, pero no pasa lo mismo si tienes una combinacion de teclas ya colocadas en el teclado. Y ademas, ya de paso, ya que estamos en excel, ¿por que no cambiar a una tabla de datos ocultas que cada uno pueda personalizar para que de verdad parezca que estas trabajando? ¿y que esa tabla tenga de color el fondo del tapete?, es demasiado cantoso eso de minimizar y que luego venga el jefe y diga, ¿que era eso que has minimizado? lo abres y ahi esta el tapete... jeje,

Un saludo amigo

publicado

verzulsan, vamos progresando si ya es compatible con todas las versiones de Excel ¡lo que no es moco de pavo! :rolleyes:

Parece mentira que no hayas descifrado cómo soltar la carta, o grupo de cartas (cosa mucho más compleja de conseguir), en el montón. Siendo tan agudo y listo como creo que eres, será porque no le has dedicado suficiente tiempo o no lo has intentado al ver lo poco estructurado que está el juego. :mad:

Te doy un par de pistas: :o

- Las coordenadas están en las hojas ocultas: CartasTop y CartasLeft

- Toda la lógica del juego se hace con una "solitaria macro": ReglasJuego asignada a cada una de las 52 cartas.

Como el juego es abierto y sin licencia de uso ni de explotación dejo a cada uno que implemente lo que más le convenga respecto a tu sugerencia de no minimizar el tapete... :P

P.D.: Siento no haber comentado las instrucciones VBA. Fue un imponderable que me propuse desde el principio, que comprimido ocupara menos de 97.7 KB para subirlo al foro, lo que me obligó a eliminar los comentarios y a generar todo el mazo de cartas dinámicamente ya que si lo pintaba antes ocupaba mucho más. :mad:

He escrito un primer artículo en mi blog sobre:

Donde podréis bajaros la versión 2.2 que ha dejado de ser β.

Archivado

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

×
×
  • 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.