Introducción
Formato general
Tag JSOL
Tag SOLITAIRE
Tag TALON
Tag WASTE
Tag FOUNDATION
Tag COLUMN
Tag CELL
Tag RESERVE
Ejemplos
En jSol los solitarios se definen en uno o varios ficheros de configuración que se almacenan en la carpeta xmlRules que se crea al instalar el juego. Puede haber tantos ficheros de definición de solitarios como se quiera. Pueden tener cualquier nombre, pero su extensión debe ser .xml. Al inicio del juego jSol carga e interpreta todas las definiciones existentes en todos los ficheros de configuración que encuentra en esta carpeta.
Estos ficheros de configuración están escritos en XML (eXtendend Markup Language). No obstante, no se requieren conocimientos específicos de XML para modificar o añadir nuevas definiciones. Este documento explica en detalle el lenguaje de definición, sus parámetros y significados.
Los solitarios se definen en los ficheros de configuración a través de atributos o parámetros asociados a etiquetas (o tags) que definen los distintos aspectos de comportamiento del solitario. El formato en que se describen estos atributos es:
<ETIQUETA ATRIBUTO1="Valor1" ATRIBUTO2="Valor2"> </ETIQUETA>
ETIQUETA es un nombre que describe alguno de los elementos del solitario (la pila, el pozo, los cimientos, etc.), mientras que los atributos indican el comportamiento de ese elemento del juego, o su forma de visualizarse. Observese que
Además la estructura de los elementos es jerárquica. Es decir un elemento puede definirse dentro de otro. Por ejemplo:
<ELEMENTO1 ATRIBUTO1="Valor1" ATRIBUTO2="Valor2">
<ELEMENTO2 ATRIBUTO1="Valor1">
</ELEMENTO2>
</ELEMENTO1>
En este caso el elemento2 está completamente incluido dentro del elemento1.
Además de los elementos y sus valores los ficheros de configuración tienen un cabecera, que debe ser la que se indica a continuación. La primera y tercera líneas son obligatorias y se deben mantener sin cambios. La segunda línea es un comentario y puedes modificarla a voluntad.
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!-- jSol. 2001. Antonio Bel Puchol. abelp@arrakis.es -->
<!DOCTYPE JSOL SYSTEM "jsol.dtd">
Los elementos existentes para la definición de un solitario son:
JSOL es un tag obligatorio, que no tiene parámetros adicionales.Simplemente indica el comienzo de la definición de solitarios para jSol. Debe haber uno y sólo uno en cada fichero de configuración. Debe aparecer inmediantamente después de la cabecera y todas las definicones de solitarios (Tag SOLITAIRE) deben estar incluidas entre el comienzo y el final del tag. El aspecto de un fichero de configuración con la cabecera y el tag JSOL incluidos es:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!-- jSol. 2001. Antonio Bel Puchol. abelp@arrakis.es -->
<!DOCTYPE JSOL SYSTEM "jsol.dtd">
<JSOL>
<!-- Aquí vienen todas las definiciones de solitarios -->
</JSOL>
El tag SOLITAIRE define características generales del solitario como su nombre, la familia a la que pertenece, etc. Debe existir uno por cada solitario que se defina y debe estar dentro de la jerarquía iniciada por JSOL. A su vez contiene todos los demás elementos de la definición del solitario. Puede contener los siguientes atributos:
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
NAME | Nombre del solitario | Cualquier cadena de caracteres | Ninguno. | Si |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
TYPE | Tipo o familia a la que pertenece el solitario | Cualquier cadena de caracteres | Ninguno. | Si |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
INI_CLASS | Clase Java que inicializa los componenetes del solitario | Path completo a una clase válida | abelpsoft.jSol.main.JSolBuilder | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
EVT_CLASS | Clase Java que gestiona los eventos del solitario. | Path completo a una clase válida | abelpsoft.jSol.main.JSolEvtManager | No |
Nota: Estos dos parámetros permiten personalizar el comportamiento de los solitarios cuando no es suficiente con el resto de los parámetros. Escapa al ámbito de este tutorial explicar como pueden codificarse estas clases.
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
CARDS_CLASS | Clase Java que gestiona el juego de cartas del solitario. | Path completo a una clase válida | abelpsoft.jSol.main.Cards54F | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
DECKS | Número de barajas que intervienen en el solitario. | 1 ó 2 | Ninguno | Si |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
HELP_FILE | Nombre del fichero html con las instrucciones del juego. Indicar sólo el nombre del fichero y extensión, que debe estar en la carpeta rules. | Cadena de caracteres | Ninguno | Si |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
WIDTH | Ancho del panel de juego expresado en número de cartas que caben en él. Usado por jSol para dimensionar el tamaño del área de juego. | Numérico | 7 | Si |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
HIGH | Alto del panel de juego expresado en número de cartas que caben en él. Usado por jSol para dimensionar el tamaño del área de juego. | Numérico | 5 | Si |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
OFFSET_X | Espacio desde el margen del panel de juego hasta la primera carta y entre cada una de ellas (en dirección horizontal). Expresado en % respecto del ancho de una carta | Numérico | 20 | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
OFFSET_Y | Espacio desde el margen del panel de juego hasta la primera carta y entre cada una de ellas (en dirección vertical). Expresado en % respecto del alto de una carta | Numérico | 20 | No |
El tag TALON sirve para definir las características de funcionamiento del talon, o mazo de cartas, que se coloca boca abajo y de las que el jugador va extrayendo cartas para colocarlas en juego. No es obligatorio aunque existe en la mayor parte de los solitarios. Tiene los siguientes atributos:
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
STEP | Número de cartas que se toman del mazo cada turno | Cualquier valor entero positivo. | 1 | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
REDEAL | Número de reciclados permitidos en el juego. Reciclar es la operación de volver a colocar de nuevo en el mazo las cartas que quedan en el pozo (pila de descartes, tag WASTE). En algunos solitarios puede tener un significado especial. | Cualquier valor entero positivo o la constante. NO_LIMIT (reciclados ilimitados) | NO_LIMIT | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
TALON_MODE | Destino de las cartas que salen de Talon. TO_WASTE indica que van al Waste (pila de descartes, tantas cartas como indique STEP). TO_COLUMNS indica que van a las columns (tantas cartas como indique STEP a cada columna) | TO_WASTE TO_COLUMNS |
TO_WASTE | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
X | Coordenada X de la esquina superior izquierda del elemento. La unidad de medida es el ancho de la carta. | Valor entero positivo | Ninguno | Si |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
Y | Coordenada Y de la esquina superior izquierda del elemento. La unidad de medida es el alto de la carta. | Valor entero positivo | Ninguno | Si |
WASTE es la pila de descartes donde, normalmente se acumulan las cartas que salen del mazo o talon. Las cartas se colocan boca arriba y sólo es visible la última. Del pozo las cartas pueden pasar a otros elementos del solitario como las columnas o los cimientos (foundations). No es obligatorio aunque existe en la mayor parte de los solitarios.
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
FROM_COLS | Indica si el waste puede recibir cartas desde el talon y las columnas (TRUE) o sólo desde el talon (FALSE) | TRUE FALSE |
FALSE | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
CARD_TYPE | Si el atributo FROM_COLS es TRUE, este atributo indica el tipo de cartas que admite el waste: ANY_CARD: Cualquier carta. NEXT_PREV_ROLL: Carta con un valor siguiente o previo a la última. Después del rey viene el as y viceversa. NEXT_PREV_NO_ROLL: Carta con un valor siguiente o previo a la última. |
ANY_CARD NEXT_PREV_ROLL NEXT_PREV_NO_ROLL |
ANY_CARD | No |
Nota: La mayor parte de los solitarios usan el valor ANY_CARD. Los otros valores implican que la pila de descartes no es tal (Ver solitarios de tipo Golf).
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
END_GAME | Si es TRUE, indica que el juego finaliza (exitosamente) cuando el waste tiene todas las cartas en juego. | TRUE FALSE |
FALSE | No |
Nota: Igual que el parámetro anterior. La mayoría de los solitarios concluyen cuando todas las cartas están en los cimientos. Sólo para propósitos especiales.
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
X | Coordenada X de la esquina superior izquierda del elemento. La unidad de medida es el ancho de la carta. | Valor entero positivo | Ninguno | Si |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
Y | Coordenada Y de la esquina superior izquierda del elemento. La unidad de medida es el alto de la carta. | Valor entero positivo | Ninguno | Si |
Los cimientos (o foundations) son los lugares donde se van desplazando las cartas ordenadamente desde las columnas o desde la pila de descartes (waste). Hay cuatro foundations si se usa una baraja u ocho si se usan dos. No es un elemento obligatorio aunque existe en la mayor parte de los solitarios. De forma estandar (a menos que se indique con algún otro parámetro) el juego finaliza cuando todas las cartas del juego se desplazan a los cimientos. El tag FOUNDATION define los atributos comunes a todos los cimientos. Por tanto solo hay un elemento FOUNDATION por solitario (o ninguno).
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
FOUN_TYPE | Tipo del cimiento: SAME_SUIT: En cada cimiento todas las cartas deben ser del mismo palo. NO_SUIT: En cada cimiento las cartas pueden ser de cualquier palo respetando la secuencia indicada por el atributo ORDER DIFERENT_COLOR: En cada cimiento cada carta debe ser de un colo distinto a la anterior. |
SAME_SUIT NO_SUIT DIFERENT_COLOR |
SAME_SUIT | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
ORDER | Indica el orden del cimiento, ascendente o descendente. ASCENDING: Cimiento en orden ascendente. Cada carta debe ser la siguiente a la última introducida. DESCENDING: Cimiento en orden descendente. Cada carta debe ser la anterior a la última introducida. |
ASCENDING DESCENDING |
ASCENDING | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
BASE_CARD | Indica la carta base del cimiento. Si no se especifica la carta inicial es siempre el As, si el orden del cimiento es ascendente o el rey si es descendente. La constante FIRST_CARD indica que el valor inicial del cimiento lo da la primera carta que se coloca en él. | Número de 0 (As) a 12 (rey) o la cte. FIRST_CARD | Ninguno | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
RETOURNABLE | Indica si las cartas pueden volver a salir del cimiento a las columnas (TRUE) o no(FALSE). | TRUE FALSE |
TRUE | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
X | Coordenada X de la esquina superior izquierda del elemento. La unidad de medida es el ancho de la carta. | Valor entero positivo | Ninguno | Si |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
Y | Coordenada Y de la esquina superior izquierda del elemento. La unidad de medida es el alto de la carta. | Valor entero positivo | Ninguno | Si |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
ORIENTATION | Indica la orientación de los cimientos en la pantalla. HORIZONTAL: Los cimientos se colocan uno al lado del otro, en disposición horizontal. VERTICAL: Los cimientos se colocan uno debajo del otro, en disposición vertical. MATRIX: Orientación en forma de matriz (Filas y columnas) |
HORIZONTAL VERTICAL MATRIX |
HORIZONTAL | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
DISTANCE_X | Es la separación en horizontal entre dos cimientos. Se aplica cuando la orientación es horizontal o matricial. Expresada en % del ancho de una carta. | Valor entero positivo | 20 | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
DISTANCE_Y | Es la separación en vertical entre dos cimientos. Se aplica cuando la orientación es vertical o matricial. Expresada en % del alto de una carta. | Valor entero positivo | 20 | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
BY_ROW | Num. de elementos por fila en caso de que la orientación sea MATRIX | Valor entero positivo | Ninguno | No |
Las columnas constituyen normalmente el área de juego más importante. Las cartas suelen pasar de la pila de descartes (waste) a las columnas, donde se agrupan según criterios que dependen de cada solitario. Las cartas en las columnas pueden moverse de unas columnas a otras, según reglas también variables. En general, las cartas pueden salir de las columnas para ir a los cimientos (foundations). El tag COLUMN define las características del conjunto de columnas de un solitario. Es opcional, pero existe casi siempre. Los atributos que se pueden usar en la definición de las columnas son:
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
NUM_COLS | Número de columnas | Valor entero positivo | Ninguno | Si |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
INIT_NUM_CARDS | Número inicial de cartas en cada columna. Puede ser un número (todas las columnas tendrán el mismo número de cartas), o la constante KLONDIKE_STYLE (Una carta en la primera columna, dos en la segunda y así sucesivamente) | Valor entero positivo KLONDIKE_STYLE |
Ninguno | Si |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
INIT_RANK | Valor de la carta (rank) que puede ocupar una columna vacía. Puede ser un número del 0 (As) al 12 (rey) o las constantes ANY_RANK (Columnas vacías pueden ser ocupadas por cualquier carta) o NO_FILL_EMPTY (Columnas vacías no se ocupan) | Valor entero positivo entre 0 y 12 ANY_RANK NO_FILL_EMPTY |
ANY_RANK | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
NEXT_CARD | Condición para formar una secuencia válida. Indica como debe ser la siguiente carta que entra en comparación con la última. | ANY_CARD DIFERENT_COLOR DIFERENT_SUIT SAME_COLOR SAME_SUIT |
ANY_CARD | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
SEQUENCE | Indica el orden de la columna, ascendente o descendente. ASCENDING: Columna en orden ascendente. Cada carta debe ser la siguiente a la última introducida. DESCENDING: Columna en orden descendente. Cada carta debe ser la anterior a la última introducida. NOT_SEQUENCE: No hay secuencia. La carta puede ser cualquier valor, independientemente de la anterior. |
ASCENDING DESCENDING NOT_SEQUENCE |
ASCENDING | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
MOVE_COLUMNS | Indica las condiciones que debe reunir una columna o
fragmento de columna para que pueda moverse a otra columna. FIXED: Se mueven un número constante de cartas determinado por el atributo MAX_CARDS_MOV FREE_CELL_STYLE: vease este juego. VALID_COLUMN: Se pueden mover columnas siempre que formen una columna válida. SAME_SUIT: Se pueden mover columnas que formen una columna válida y sean del mismo palo. SAME_COLOR: Se pueden mover columnas que formen una columna válida y sean del mismo color. YUKON_STYLE: Ver solitario Yukon SPIDER_STYLE: Ver solitario Spider NONE: No se permite movimiento de cartas entre columnas |
FIXED FREE_CELL_STYLE VALID_COLUMN SAME_SUIT SAME_COLOR YUKON_STYLE SPIDER_STYLE NONE |
VALID_COLUMN | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
MAX_CARDS_MOV | Número máximo de cartas que se pueden mover en una columna. Usado cuando MOVE_COLUMNS es FIXED | Valor entero positivo | Ninguno | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
COVER_MODE | Indica si las cartas de las columnas están cubiertas o no.
Independientemente de su valor, la última de cada columna siempre está descubierta. COVERED: Cubiertas UNCOVERED: Descubiertas |
COVERED UNCOVERED |
COVERED | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
CYCLE | Indica si las columnas son cíclicas o no. Una columna es cíclica cuando después del as se puede colocar el rey (Secuencia descendente) o después del rey se puede colocar el as (Secuencia ascendente) | TRUE FALSE |
FALSE | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
COL_ORIENTATION | Indica como se colocan las cartas en una columna. Una al lado de otra (HORIZONTAL) o una debajo de otra (VERTICAL). No confundir con el parámetro ORIENTATION que indica la posición de las columnas en la pantalla. | HORIZONTAL VERTICAL |
VERTICAL | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
COL_LENGTH | Indica la longitud de la columna, expresada en número de cartas que caben en la misma. Es aplicable cuando COL_ORIENTATION es VERTICAL.Debe ser suficiente para albergar todas las posibles cartas que entran en una columna. | Entero positivo | 18 | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
COL_WIDTH | Indica la longitud de la columna, expresada en número de cartas que caben en la misma. Es aplicable cuando COL_ORIENTATION es HORIZONTAL.Debe ser suficiente para albergar todas las posibles cartas que entran en una columna. | Entero positivo | 18 | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
X | Coordenada X de la esquina superior izquierda del elemento. La unidad de medida es el ancho de la carta. | Valor entero positivo | Ninguno | Si |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
Y | Coordenada Y, en pixels, de la esquina superior izquierda del elemento. La unidad de medida es el alto de la carta. | Valor entero positivo | Ninguno | Si |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
ORIENTATION | Indica la orientación de los cimientos en la pantalla. HORIZONTAL: Los cimientos se colocan uno al lado del otro, en disposición horizontal. VERTICAL: Los cimientos se colocan uno debajo del otro, en disposición vertical. MATRIX: Orientación en forma de matriz (Filas y columnas) |
HORIZONTAL VERTICAL MATRIX |
HORIZONTAL | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
DISTANCE_X | Es la separación en horizontal entre dos cimientos. Se aplica cuando la orientación es horizontal o matricial. Expresada en % del ancho de una carta. | Valor entero positivo | 20 | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
DISTANCE_Y | Es la separación en vertical entre dos cimientos. Se aplica cuando la orientación es vertical o matricial. Expresada en % del alto de una carta. | Valor entero positivo | 20 | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
OVERLAP_X | Es la distancia de solape en sentido horizontal, entre dos cartas de la columna. Expresada en % del ancho de una carta. | Valor entero positivo | 15 | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
OVERLAP_Y | Es la distancia de solape en sentido vertical, entre dos cartas de la columna. Expresada en % del alto de una carta. | Valor entero positivo | 20 | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
BY_ROW | Num. de elementos por fila en caso de que la orientación sea MATRIX | Valor entero positivo | Ninguno | No |
Las celdas son un elemento opcional que sirven como almacenamiento intermedio para una o varias cartas. El tag CELL define las características de todas las celdas del solitario.Se pueden usar los siguientes atributos:
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
NUM_CELLS | Número de celdas | Valor entero positivo | Ninguno | Si |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
NUM_CARDS | Número máximo de cartas que puede contener una celda. | Valor entero positivo | 1 | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
CARD_RANK | Valor (rank) de la carta admitida en la celda. Si es distinto de null la celda sólo adminirá cartas con ese valor. | Número del 0 (As) al 12 (Rey) | ninguno | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
CARD_SUIT | Palo (suit) de la carta admitida en la celda. Si es distinto de null la celda sólo adminirá cartas con este palo | DIAMONDS HEART SPADES CLUB |
ninguno | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
X | Coordenada X de la esquina superior izquierda del elemento. La unidad de medida es el ancho de la carta. | Valor entero positivo | Ninguno | Si |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
Y | Coordenada Y de la esquina superior izquierda del elemento. La unidad de medida es el ancho de la carta. | Valor entero positivo | Ninguno | Si |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
ORIENTATION | Indica la orientación de los cimientos en la pantalla. HORIZONTAL: Los cimientos se colocan uno al lado del otro, en disposición horizontal. VERTICAL: Los cimientos se colocan uno debajo del otro, en disposición vertical. |
HORIZONTAL VERTICAL |
HORIZONTAL | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
DISTANCE_X | Es la separación en horizontal entre dos cimientos. Se aplica cuando la orientación es horizontal o matricial. Expresada en % del ancho de una carta. | Valor entero positivo | 10 | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
DISTANCE_Y | Es la separación en pixels en vertical entre dos cimientos. Se aplica cuando la orientación es vertical o matricial. Expresada en % del alto de una carta. | Valor entero positivo | 10 | No |
La reserva es un elemento adicional presente en algunos solitarios (tipo Canfield, por ejemplo). Almacena un número determinado de cartas que pueden salir a algún otro elemento (Normalmente las columnas o los cimientos), pero no pueden entrar nuevas cartas. Es un elemento opcional.
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
NUM_CARDS | Número máximo de cartas que puede contener la reserva.. | Valor entero positivo | 1 | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
COVER_MODE | Indica si las cartas de la reserva están cubiertas o no.
Independientemente de su valor, la última de cada columna siempre está descubierta. COVERED: Cubiertas UNCOVERED: Descubiertas |
COVERED UNCOVERED |
COVERED | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
AUTOMATIC | Indica si se coloca de forma automática una carta al inicio de una columna cuando está se queda vacía. | TRUE FALSE |
TRUE | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
RES_ORIENTATION | Indica como se colocan las cartas en la reserva. Una al lado de otra (HORIZONTAL) o una debajo de otra (VERTICAL). | HORIZONTAL VERTICAL |
VERTICAL | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
RES_LENGTH | Indica la longitud de la reserva, expresada en número de cartas que caben en la misma.. Es aplicable cuando RES_ORIENTATION es VERTICAL.Debe ser suficiente para albergar todas las posibles cartas que entran en la reserva. | Entero positivo | 18 | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
RES_WIDTH | Indica la anchura de la reserva, expresada en número de cartas que caben en la misma. Es aplicable cuando RES_ORIENTATION es HORIZONTAL.Debe ser suficiente para albergar todas las posibles cartas que entran en la reserva. | Entero positivo | 18 | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
OVERLAP_X | Es la distancia de solape en sentido horizontal, entre dos cartas. Expresada en % del ancho de una carta. | Valor entero positivo | 15 | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
OVERLAP_Y | Es la distancia de solape en sentido vertical, entre dos cartas. Expresada en % del alto de una carta. | Valor entero positivo | 25 | No |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
X | Coordenada X de la esquina superior izquierda del elemento. La unidad de medida es el ancho de la carta. | Valor entero positivo | Ninguno | Si |
Atributo | Descripción | Valores posibles | Valor por defecto | Obligatorio |
Y | Coordenada Y de la esquina superior izquierda del elemento. La unidad de medida es el ancho de la carta. | Valor entero positivo | Ninguno | Si |
La mejor forma de definir nuevos solitarios es usar las definiciones existentes para otros del mismo tipo e ir realizando las modificaciones necesarias hasta obtener la nueva definición. A muestra de ejemplo aquí están las definiciones de dos de los solitarios más conocidos: klondike y free cell.
<!-- Definición para Klondike. Una baraja, cartas de una en una, reciclados infinitos -->
<SOLITAIRE NAME="Klondike"
TYPE="Klondike" HELP_FILE="Klondike"
DECKS="1"
WIDTH="7"
HIGH="5" >
<TALON STEP="1"
REDEAL="NO_LIMIT" X="0"
Y="0"> </TALON>
<WASTE X="1"
Y="0" > </WASTE>
<FOUNDATION FOUN_TYPE="SAME_SUIT"
ORDER="ASCENDING"
X="3"
Y="0" ORIENTATION="HORIZONTAL" > </FOUNDATION>
<COLUMN NUM_COLS="7"
INIT_NUM_CARD="KLONDIKE_STYLE"
INIT_RANK="12"
NEXT_CARD="DIFERENT_COLOR"
X="0"
Y="1" ORIENTATION="HORIZONTAL"> </COLUMN>
</SOLITAIRE>
<!-- Definición para Free Cell. Una baraja, 4 celdas -->
<SOLITAIRE NAME="Free Cell"
TYPE="Free Cell" HELP_FILE="FreeCell"
DECKS="1"
INI_CLASS="abelpsoft.cardgames.SolSuite.games.FreeCellBuilder"
WIDTH="8"
HIGH="5" >
<FOUNDATION FOUN_TYPE="SAME_SUIT"
ORDER="ASCENDING"
X="4"
Y="0" ORIENTATION="HORIZONTAL" > </FOUNDATION>
<COLUMN NUM_COLS="8"
INIT_NUM_CARD="6" NEXT_CARD="DIFERENT_COLOR"
MOVE_COLUMNS="FREE_CELL_STYLE"
COVER_MODE="UNCOVERED"
X="0"
Y="1" ORIENTATION="HORIZONTAL"> </COLUMN>
<CELL NUM_CELLS="4"
NUM_CARDS="1"
X="0"
Y="0" ORIENTATION="HORIZONTAL"> </CELL>
</SOLITAIRE>