Zillions of Games [1] [2] es un sistema de juego comercial general desarrollado por Jeff Mallett y Mark Lefler en 1998. [3] Las reglas del juego se especifican con expresiones S , lenguaje de reglas de Zillions . Fue diseñado para manejar juegos de mesa o rompecabezas de estrategia en su mayoría abstractos . [4] Después de analizar las reglas del juego, la inteligencia artificial del sistema puede jugar automáticamente con uno o más jugadores. Trata los rompecabezas como juegos de solitario y su IA puede usarse para resolverlos.
Desarrollador (es) | Zillions Development Corp. |
---|---|
Lanzamiento estable | 2.0.1 / 2003 |
Sistema operativo | Microsoft Windows |
Tipo | Juego general |
Sitio web | www |
Lenguaje de escritura
El lenguaje de script de Chorrocientos-de-Games utiliza S-expresiones . Las reglas se almacenan en un archivo de texto con extensión ".zrf" (archivo de reglas de miles de millones). Los usuarios pueden crear sus propios archivos ZRF y hacer que la IA de Zillions-of-Games juegue su juego recién creado.
Aquí hay un ejemplo de reglas para Tic-tac-toe (derechos de autor de Zillions Development Inc.): [5]
( definir agregar a vacío (( verificar vacío? ) agregar ))( juego ( título "Tic-Tac-Toe" ) ( descripción "..." ) ( historia "..." ) ( estrategia "..." ) ( jugadores X O ) ( orden de turno X O ) ( tablero ( imagen "imágenes \ TicTacToe \ TTTbrd.bmp" ) ( rejilla ( puesta en rectángulo 16 16 112 112 ) ; la posición superior izquierda ( dimensiones ; 3x3 ( de "arriba / medianos / bottom" ( 0 112 )) ; filas ( "izquierda / centro / derecha" ( 112 0 ))) ; columnas ( direcciones ( n -1 0 ) ( e 0 1 ) ( nw -1 -1 ) ( ne -1 1 )) ) ) ( pieza ( nombre hombre ) ( ayuda "Hombre: cae en cualquier cuadrado vacío" ) ( imagen X "imágenes \ TicTacToe \ TTTX.bmp" O "imágenes \ TicTacToe \ TTTO.bmp" ) ( gotas ( agregar-al-vacío )) ) ( tablero- configuración ( X ( hombre fuera 5 )) ( O ( hombre fuera 5 )) ) ( condición de dibujo ( X O ) estancada ) ( condición de victoria ( X O ) ( o ( configuración relativa man n man n man ) ( relativa-config man e man e man ) ( relativa-config man ne man ne man ) ( configuración relativa man nw man nw man ) ) ) )
El resultado de cargar este ZRF en Zillions-of-Games y jugar contra la computadora se muestra en la captura de pantalla a la derecha.
La definición de juegos generalmente contiene el siguiente patrón: [6]
- Título del juego . Un ZRF puede contener más de un juego y el título del juego permite al usuario seleccionar un juego determinado.
- Descripción, historia y estrategia del juego . Este es un texto que se muestra al usuario a pedido para explicar las reglas del juego, la historia y dar consejos generales sobre el juego.
- Jugadores . Esta es una lista de nombres de jugadores utilizados en el juego. Por ejemplo, para el ajedrez sería blanco , negro . El nombre del jugador se utiliza en otros lugares, por ejemplo, en la posición inicial o en las definiciones de los objetivos del juego. Podría haber solo un jugador (por ejemplo, para rompecabezas), dos o más.
- Orden de turno Especifica el orden de los movimientos realizados por los jugadores. En el ejemplo anterior, el jugador X comienza, el jugador O se mueve y luego se repite toda la secuencia. La definición de orden de turno puede ser más compleja, por ejemplo, para el ajedrez balanceado de doble movimiento sería: (orden de turno Blanco repetición Negro Negro Blanco Blanco) , que especifica el siguiente orden de movimientos: Blanco, Negro, Negro, Blanco , Blanco, Negro, Negro, Blanco, Blanco, etc.
- Definición de tablero. Esta sección especifica la geometría del tablero de juego, las posiciones separadas del tablero y las conexiones entre ellos. La definición de placa en el ejemplo anterior primero especifica una imagen de mapa de bits que se utilizará para la placa. Una placa bidimensional se define utilizando coordenadas de píxeles del mapa de bits. La definición ("top- / middle- / bottom-" (0 112)) especificaba las notaciones que se utilizarían para las filas, así como un desplazamiento en píxeles entre las filas. La notación de texto se utiliza en la lista de movimientos, así como para guardar el juego jugado en un archivo ".zsg" (trillones de juegos guardados). Las conexiones entre la posición de la placa se especifican en la declaración (direcciones ...) . El ejemplo anterior define cuatro direcciones: n (norte) - un paso hacia arriba, e (este) - un paso hacia la derecha, nw - diagonalmente hacia arriba a la izquierda y ne - diagonalmente hacia arriba a la derecha. Las direcciones se utilizan en las definiciones de movimientos así como en las definiciones de los objetivos del juego.
- Definición de pieza. Define las piezas utilizadas en el juego, sus nombres y cómo se movieron. En el ejemplo anterior se define una pieza, Hombre , que se puede colocar en cualquier posición vacía del tablero. Además de esto, se especifican dos mapas de bits para los reproductores X y O.
- Configuración de la placa. Especifica la posición inicial del juego. El ejemplo anterior define que el tablero está vacío inicialmente y cada lado tiene 5 piezas fuera del tablero, que se pueden soltar.
- Objetivo del juego. Condición cuando uno de los jugadores gana o cuando se produce un empate. En Tic-Tac-Toe, la condición ganadora (3 en raya) se define como configuraciones relativas de piezas, utilizando las direcciones n , e , ne y nw de la definición del tablero.
Juegos implementados
Zillions of Games se llama así debido a su potencial para jugar a una gran cantidad de juegos programados por el usuario. El sistema se envía con más de 300 juegos y rompecabezas. Estos incluyen muchos juegos de mesa populares, como Alquerque , Fox and geese , Go , Gomoku , Jungle , Halma , Nim , Nine men morris , Reversi , Tafl y Tic-tac-toe . El paquete incluye muchas variantes de damas , por ejemplo, damas rusas y turcas . Además del ajedrez estándar de la FIDE , Zillions of Games contiene muchas variantes de ajedrez nacionales como shogi , xiangqi , janggi , así como una serie de variantes de ajedrez populares como Ultima , Extinction chess , Losing Chess , shatranj , Berolina chess , Grand Chess y otras. También incluye algunos rompecabezas, como 15-Puzzle , Towers of Hanoi , ocho reinas y una variedad de solitarios .
No mucho después de que saliera al mercado a fines de 1998, los usuarios de Zillions of Games comenzaron a programar nuevos juegos y acertijos, creando muchos de ellos ellos mismos. Pronto empezaron a aparecer dos grandes colecciones de Zillions Rules Files (ZRF). Uno estaba en el sitio web de Zillions-of-Games y el otro en el sitio web de Chess Variant Pages . [7] El primero recopiló todo tipo de ZRF, mientras que el segundo se centró en ZRF para variantes de ajedrez . En noviembre de 2017, la interfaz ZILLIONS tenía 2.577 ZRF, creada por 462 autores de ZRF, [8] y la colección de páginas de variantes de ajedrez tenía 794 ZRF de variantes de ajedrez.
Los juegos programados por los usuarios incluyen juegos como 4D Tic-Tac-Toe, FreeCell , Rubik's Cube , Teeko , Mancala , Alice Chess , Chess960 , Hexagonal Chess , Star Trek Tridimensional Chess y Sokoban . Además de varios juegos y acertijos, también hay ZRF educativos, como el autómata celular Game of Life , una calculadora y algunas simulaciones de máquinas de Turing .
Usos
Millones de juegos se pueden usar para lo siguiente:
- Jugar a cualquiera de los juegos o rompecabezas que lo acompañan.
- Jugar a cualquiera de los juegos y acertijos gratuitos que hayan sido programados para él por los usuarios.
- Jugar juegos con usuarios remotos a través de Internet o una conexión de acceso telefónico.
- Jugar juegos enviando archivos ZSG por correo electrónico de ida y vuelta.
- Programarlo para jugar nuevos juegos y rompecabezas.
- Utilizándolo como herramienta de desarrollo para la creación de nuevos juegos y rompecabezas.
- Probar nuevos juegos en busca de atracción y otras cualidades haciendo que Zillions los juegue contra sí mismo.
- Resolver rompecabezas o asegurarse de que se puedan resolver los rompecabezas recién creados.
- Creación de diagramas que se pueden recortar de capturas de pantalla.
Capacidades
Zillions representa tableros y piezas con imágenes de mapa de bits; estos pueden ser reasignados por el usuario. Los tableros pueden ser gráficos dirigidos arbitrariamente, pero los tableros en forma de cuadrícula estándar son más fáciles de producir y tienen soporte incorporado para detectar colinealidad . Las condiciones disponibles para ganar, perder y empatar incluyen jaque mate, estancamiento, repetición, captura de piezas, configuración absoluta, configuración relativa y varios tipos de recuento de piezas. Estos permiten la creación de una variedad de juegos y rompecabezas diferentes.
Además de definir cómo se mueven las piezas, Zillions puede definir cómo se pueden soltar las piezas. Esto es para introducir nuevas piezas en un juego. No es útil para el shogi, que "deja caer" las piezas capturadas almacenadas en los lados del tablero. Es para juegos como Go, Reversi y Tic-Tac-Toe, que habitualmente permiten a los usuarios agregar nuevas piezas al tablero. Al igual que con el movimiento de la pieza, esto se define algorítmicamente y puede ser algo tan simple como dejar caer una nueva pieza solo en un espacio vacío o seguir reglas más complejas.
Desde la versión 2.0, Zillions ha tenido la capacidad adicional de hacer cumplir las reglas de captura máximas (utilizadas en algunas versiones de Checkers ) y un motor de Go-playing con todas las funciones.
Zillions incluye un "jugador aleatorio" que selecciona de sus movimientos disponibles al azar; esto se puede utilizar para simular dados en juegos de carreras y parientes de Backgammon . [4]
El motor de IA estándar puede, si es necesario, ser reemplazado por motores creados por el usuario. Estos motores pueden usar libros de apertura u otras funciones que no están disponibles para la IA estándar. [9]
Limitaciones
A pesar de su versatilidad, Zillions of Games tiene una serie de limitaciones no triviales:
- Zillions Of Games está diseñado para jugar exclusivamente a juegos de información perfectos . Esto hace que sea de poco o ningún uso en bastante jugando imperfecta o juegos ocultos de información contra la IA, tales como juegos de cartas o juegos de mesa con valores pieza ocultos como Stratego . En cambio, el programa utilizará automáticamente toda la información disponible para sí mismo, incluidas las cartas de la baraja y las cartas en manos de todos los demás jugadores. Los juegos aún pueden ser jugados por jugadores humanos, aunque no hay soporte para revelar información de forma selectiva a un solo jugador. [4]
- Su lenguaje de programación carece de soporte para aritmética, funciones y variables más allá de algunos indicadores booleanos. [4]
- El motor no tiene soporte integrado para objetivos basados en conexión como en Hex ; por lo tanto, estos objetivos deben implementarse a mano. [4]
- Tampoco hay soporte para tener múltiples piezas por ubicación, o para piezas que cubran múltiples ubicaciones a la vez. Por lo tanto, se requieren soluciones complicadas para los juegos que necesitan estas características, como Mancala , Laska o Quoridor . [4]
- Como la mayoría de los programas de juegos de IA, el motor predeterminado funciona mal en juegos con grandes factores de ramificación, como el shogi . [4]
- En algunos aspectos vitales, el programa es demasiado restrictivo en lo que permite.
- Aunque puede reconocer la repetición, el único tipo que puede reconocer es la repetición triple .
- Aunque puede verificar varias condiciones de victoria, pérdida y empate al final de un movimiento, no puede verificar ninguna de ellas al evaluar posibles movimientos para una pieza. En consecuencia, en shogi, por ejemplo, no se puede programar para hacer cumplir siempre con precisión la regla contra el jaque mate a un rey con una caída de peón.
- Muchas variantes de ajedrez de varias personas no se pueden jugar porque detendrán inmediatamente el juego cuando el primer jugador esté en jaque mate o en punto muerto .
- En algunos casos, la calidad de la jugabilidad se ve comprometida debido a que la IA calcula automáticamente los valores de las piezas de manera inexacta y no hay opción disponible para anularlos manualmente con valores de piezas precisos.
Muchas de estas limitaciones se pueden eludir utilizando extensiones como Axiom Development Kit. [10]
Referencias
- ^ Generación de contenido procedimental basada en búsquedas: una taxonomía y encuesta , Julian Togelius , Georgios N. Yannakakis , Kenneth O. Stanley , Cameron Browne , IEEE Transactions on Computational Intelligence and AI in Games 3 (3): 172 - 186 · Octubre 2011 doi : 10.1109 / TCIAIG.2011.2148116
- ^ Asociación alemana de Chu Shogi
- ^ David NL Levy (2006). Robots ilimitados . AK Peters, Ltd. ISBN 1-56881-239-6.
- ^ a b c d e f g "¿Puede Zillions apoyar este juego?" Preguntas frecuentes de Zillions Development Corp.
- ^ El ejemplo de Tic-Tac-Toe está tomado de "TicTacToe.zrf" en la instalación de Zillions-of-Games y está ligeramente simplificado. El uso en Wikipedia tiene fines ilustrativos y se cree que cumple conla ley de uso legítimo de EE. UU.
- ^ La especificación completa del lenguaje de programación de Zillions-of-Games se puede encontrar en Referencia del lenguaje de Zillions , que se puede encontrar en lainstalación de Zillions .
- ^ Trillones de juegos : la colección de páginas de variantes de ajedrez de variantes de ajedrez para trillones de juegos
- ^ Juegos complementarios gratuitos para miles de millones de juegos
- ^ Capacidades de Zillions , capacidades agregadas en la versión 2.0
- ^ Greg Schmidt (16 de abril de 2016). "Kit de desarrollo Axiom" . Consultado el 4 de agosto de 2016 .
enlaces externos
- Página web oficial
- Una revisión de Zillions of Games por Hans Bodlaender
- Museo de Zillions of Games con miles de reglas de juego de Zillions of Games disponibles para descargar