RE:Solitario en Visual Basic
Hola,
de curiosidad me puse a jugar solitario y debo decir que prefiero doom o sus variantes.
La mecanica del juego no sé si la entendi, pero es apilar cartas de mayor a menor sin importar el dibujito de la carta pero si importa que sean de diferente color, todo esto para finalmente apilar las cartas ordenadas de menor a mayor pero esta vez si se requiere que los dibujitos concuerden.
Si es eso, te podría ayudar de esta forma, se me ocurre una matriz tipo.
Public Type solifome
numero_carta As integer '1 - 13
dibujito_carta As integer ' 1 - 4
color_carta As boolean '0 -1... como si hubiese más opciones en un bool..
estado_carta as boolena '0-1.. boca arriba, boca abajo
evento_carta as integer '0 - 2 ' 0=mazo aleatorio, 1 = mesa, 2 = fuera del juego
monton as integer '0-6 si el evento es 1, entonces saber en que monton está
'la carta
End Type
El máximo de cartas son 52, entonces tu matriz podría ser así:
dim baraja(52) as solifome
Luego es hacer varias salvedades que son las reglas del juego:
24 posiciones randomizadas quedan fuera de la matriz, estas componen el maso 1.
7 quedan boca arriba como la carta que tapa los sub mazos.
21 quedan boca abajo y forman grupos desde 0 - 6.
De esas 21 hacer 6 grupos de mazos, mazo=n+1 donde n=1 hasta 6.
Y con eso ya empieza el juego.
El resto ya es como enfoques tu algoritmo, pero si vienen muchos recorridos por toda la matriz comparando, comparando, comparando, sería bueno que pensarás en implementar un función para que no se te haga complejo manejar todo eso.
Viendolo de otra forma se parece bastante al algoritmo de las torres de hanoi.
Espero te sirva el Tip.
Dejando abierto al comentario a quién vea que olvidé u omití algo.
Saludos.