# Carta blanca (juego de naipes)

Carta blanca (nombre original en inglés: FreeCell) es un juego de naipes de tipo solitario que se juega con la baraja estándar de 52 cartas. Se diferencia fundamentalmente de la mayoría de los juegos de solitario en que muy pocas partidas son irresolubles, y todas las cartas se reparten boca arriba desde el comienzo del juego. Microsoft ha incluido un videojuego de computadora de Carta blanca con cada lanzamiento del sistema operativo Windows desde 1995, lo que ha contribuido en gran medida a la popularidad del juego.

## Reglas
### Construcción y distribución

* Es utilizado un mazo estándar de 52 cartas.
* Existen cuatro casillas abiertas y cuatro sitios de llegada abiertos. Algunas reglas alternativas usan de una a diez casillas.
* Las cartas son repartidas en ocho columnas en cascada, cuatro de ellas con siete cartas y las otras cuatro con seis cartas. Algunas reglas alternativas utilizan entre cuatro y diez columnas.

### Construcción durante el juego

* La carta más al frente de cada columna comienza una pila de cartas.
* Las pilas deben ser colocadas haciendo una cascada hacia abajo alternando colores.
* Las cartas en las casillas de llegada son colocadas ordenadas por pintas (palos).

### Movimientos

* Cualquier carta que esté en una de las cuatro casillas auxiliares o la carta más frontal de una pila puede ser movida ya sea a otra pila, a una casilla vacía, una columna vacía, o a su casilla de llegada.
* Pueden ser movidas pilas completas o parciales a pilas ya existentes, o a columnas vacías, colocando y removiendo cartas de manera recursiva a través de localizaciones intermedias. Mientras que las implementaciones de computadora suelen mostrar este movimiento, los jugadores que utilizan mazos de cartas físicos típicamente mueven la pila de una sola vez.

### Victoria

* El juego es ganado después de que todas las cartas son movidas a sus respectivas pilas en las casillas de llegada.
En el caso de los juegos con la distribución estándar, cuatro casillas abiertas y ocho columnas, la mayoría de los juegos son fácilmente resueltos.

## Partidas numeradas

Aunque las implementaciones de software varían, la mayoría de las versiones etiquetan las partidas con un número derivado del valor inicial utilizado por el generador de números aleatorios para barajar las cartas.
El videojuego Carta blanca de Microsoft es tan definitivo para los jugadores de Carta blanca que muchas otras implementaciones de software incluyen compatibilidad con su generador de números aleatorios para replicar sus partidas numeradas.

## Historia y variantes

Uno de los ancestros más viejos de Carta blanca es Eight Off. En la edición de junio de 1968 de Scientific American, Martin Gardner describió en su columna «Juegos matemáticos» un juego creado por C. L. Baker que es similar a Carta blanca, excepto que las cartas en las pilas son construidas por palos en vez de hacerlo alternando el color. Gardner escribió: "«Su padre le enseñó el juego a Baker, quien a su vez lo aprendió de un inglés durante la década de 1920». Esta variante es ahora llamada Baker's Game. Los orígenes de Carta blanca pueden remontarse incluso más atrás, a 1945, a un juego escandinavo llamado Napoleon in St. Helena (no confundir con el juego de solitario Napoleon at St. Helena, también conocido como Forty Thieves).
Paul Alfille cambió Baker's Game al hacer que las pilas se construyeran al alternar colores, creando así Carta blanca. Implementó la primera versión computarizada cuando era estudiante de medicina en la Universidad de Illinois, en el lenguaje de programación TUTOR para el sistema informático educativo PLATO en 1978. Alfille fue capaz de mostrar imágenes gráficas de naipes fácilmente reconocibles en la pantalla monocromática de 512 × 512 de los sistemas PLATO.
Este entorno original de Carta blanca permitía partidas con 4 a 10 columnas y 1 a 10 casillas además de la partida estándar de 8 × 4. Para cada variante, el programa almacenaba una lista ordenada de los jugadores con las mayores rachas ganadoras. Había también un sistema de torneo que le permitía a la gente competir para ganar partidas difíciles escogidas manualmente. Paul Alfille describe este primer entorno de Carta blanca con más detalle en una entrevista del 2000.
En 2012, los investigadores utilizaron métodos de computación evolutiva para crear jugadores ganadores de Carta blanca.
Una variante en la que el movimiento de la secuencia de cartas no está limitado por las casillas disponibles se conoce como Relaxed FreeCell (en español, Carta blanca relajada).

## Resolución
### Complejidad

El juego tiene un número constante de cartas. Esto implica que en un tiempo constante, una persona o computadora podría listar todos los posibles movimientos de una configuración inicial dada y descubrir un conjunto de movimientos ganadores o, asumiendo que el juego no puede ser resuelto, la falta del mismo. Para realizar un interesante análisis de complejidad se debe construir una versión generalizada del juego de Carta blanca con 4 × n cartas. Esta versión generalizada del juego es NP-completa; es improbable que cualquier algoritmo más eficiente que una búsqueda de fuerza bruta exista tal que pueda encontrar soluciones para configuraciones de Carta blanca arbitrariamente generalizadas.
Existen 52! (es decir, 52 factorial), o aproximadamente 8×10$^{67}$, repartos únicos. Sin embargo, algunos juegos son efectivamente idénticos a otros debido a que los palos asignados a las cartas son arbitrarios o las columnas pueden ser intercambiadas. Después de tomar estos factores en cuenta, hay aproximadamente 1,75×10$^{64}$ juegos únicos.

### Solucionadores

Una de las pasiones de varios entusiastas de Carta blanca fue el construir programas de computadora que pudieran resolver automáticamente el juego. Don Woods escribió un solucionador para Carta blanca y varios juegos similares en 1997.
Otro conocido solucionador es Patsolve de Tom Holroyd. Patsolve utiliza movimientos atómicos, y desde la versión 3.0 ha incorporado una función de peso basada en los resultados de un algoritmo genético que lo hace mucho más rápido.
Shlomi Fish inició su propio solucionador en 2000, escrito en el lenguaje de programación C y distribuido con su código fuente en el dominio público, más tarde relicenciado bajo la Licencia MIT. Este solucionador fue simplemente denominado Freecell Solver.
Gary Campbell escribió su solucionador FCELL para DOS en lenguaje ensamblador para 8086. Este solucionador pesa 12 kilobytes, y es bastante rápido. FCELL fue incorporado en el Faslo FreeCell AutoPlayer en 2007.
Algunos de estos solucionadores y otros se han incorporado dentro de grandes programas de Carta blanca o de solitario. FreeCell Pro, la implementación mejorada de solitario basada en Windows por Adrian Ettlinger y Wilson Callan (anteriormente freeware, después licenciado bajo la GPL), integró primero el solucionador de Don Woods y posteriormente utilizó el solucionador de Fish y el Patsolve de Holroyd. PySolFC ha integrado el Freecell Solver, mientras que los juegos de solitario KPatience de KDE tenían integrado inicialmente el Freecell Solver también, pero después cambiaron a una versión muy modificada de Patsolve.

### Juegos imposibles

Se cree que el juego #11982 es el único sin solución de los 32.000 juegos originales de Carta blanca de Windows. En la versión de Carta blanca de Windows XP, con un millón de manos, hay ocho repartos que se ha demostrado que son irresolubles. Actualmente, ninguna simulación de computadora ha sido capaz de resolver el juego #11982 utilizando solo cuatro casillas vacías.
Cuando Carta blanca de Microsoft se volvió muy popular durante la década de los 1990, no estaba claro cuál de los 32.000 repartos en el programa podían resolverse. Para aclarar la situación, Dave Ring inició The Internet FreeCell Project (El Proyecto Carta blanca de Internet) y tomó el desafío de tratar de resolver todos los repartos usando solucionadores humanos. Ring asignó 100 bloques de juegos consecutivos a humanos voluntarios y recolectó los juegos que ellos reportaban como irresolubles, y se los asignó a otras personas. Este proyecto utilizó el poder del crowdsourcing (búsqueda de información en masa) para convergir rápidamente en la respuesta. El proyecto fue finalizado en octubre de 1995, y solo un juego venció cada intento de los jugadores humanos: #11.982. Este reparto ha vencido también cada intento de solución por varios programas solucionadores de búsqueda exhaustiva, y por tanto se asume que es imposible.
El juego 11.982 es inherentemente difícil debido al gran número de ases y otras cartas pequeñas hasta atrás en las columnas, así como a que las cartas altas que están distribuidas de manera relativamente uniforme en las columnas, requieren el uso de muchas de las casillas para llegar a cualquier carta útil.
Fuera de los actuales juegos de Microsoft Windows, hay ocho que son irresolubles: los juegos numerados 11.982; 146.692; 186.216; 455.889; 495.505; 512.118; 517.776 y 781.948. La búsqueda exhaustiva ha mostrado que para estos juegos se requieren 5 casillas libres, en vez de las cuatro casillas estándar. Adrian Ettlinger, usando el solucionador de Don Woods, ha usado el mismo generador de manos aleatorias que Carta blanca de Microsoft Windows para explorar más de 10 millones de juegos. De los 130 juegos sin solución en los primeros 10 millones, todos ellos requieren de 5 casillas libres. Ryan L. Miller, con la ayuda de otros exploró 100 millones de juegos, con un total de 1282 juegos irresolubles. Esto le da a Carta blanca una tasa ganadora de alrededor de 99,998718%.

### Huevos de Pascua

En las primeras versiones, los juegos numerados como -1 y -2 estaban incluidos como un tipo de huevo de Pascua para demostrar que había algunas combinaciones de cartas posibles que claramente no podrían ser ganadas. Para esto, las cartas son colocadas en orden de valor, tales como Rey, Reina, Jack, 10, 9 y 8 en las primeras cuatro columnas, y los números restantes en las otras.
En las versiones previas a Windows Vista, si el usuario tecleaba la combinación de Ctrl+Shift+F10 en cualquier momento durante el juego, al usuario se le presentaría una herramienta utilizada por los desarrolladores durante las pruebas.
En las versiones de Windows Vista y Windows 7, si el usuario hace clic en "Seleccionar juego" y escribe -3 o -4 en la caja de diálogo, entonces, cuando el juego se cargue, se mueve un as a la casilla de llegada, las otras cartas automáticamente se colocarán en sus respectivas casillas de llegada, ganando el juego. El seleccionar -1 o -2 en la caja de diálogo resulta en dos manos no aleatorias altamente ordenadas imposible de ganar.