Estoy tratando de escribir una especie de juego de cartas coleccionables aquí, de alguna manera, es similar a Magic The Gathering , o Yu-Gi-Oh! juego de cartas.
Para aquellos de ustedes que no están familiarizados con él, básicamente, en el juego, hay un tipo especial de tarjeta (cartas de hechizo / cartas de trampa / etc.), que tiene efectos especiales que pueden cambiar las reglas del juego. Lo que no tengo ni idea es cómo implementar la lógica de estas tarjetas. Tengo una idea de almacenar los datos de la tarjeta con algunas banderas que pueden indicar qué tipo de habilidad tiene, pero eso sería muy limitado en lo que puede hacer (solo algunas modificaciones simples de estadísticas, tal vez).
Para darte una idea de qué tipo de efectos pueden tener estas cartas, aquí hay un ejemplo de los efectos de las cartas de hechizo que están presentes en Yu-Gi-Oh! juego de cartas:
- Revive una criatura que ha sido destruida
- Toma el control de la criatura del oponente
- Modifique las estadísticas de la criatura en función de algunas condiciones (por ejemplo, número de criaturas con ciertos nombres que han sido destruidos)
- Invocación especial de ciertas criaturas si se cumplen algunas condiciones.
- Fusiona dos o más criaturas en una criatura más fuerte.
- Inmunidad a algunos de los efectos de las cartas especiales.
Konami ha realizado varios videojuegos del juego, completos con la IA y la variedad de miles de cartas. No creo que sea posible codificar la base de datos completa, ¿verdad?
Ahora, por supuesto, lo que intento hacer es en ningún lugar tan complejo como esos juegos, pero tengo curiosidad, ¿cómo implementan estos?
Es una tarea bastante inútil intentar incorporar todo eso solo con modificadores y variables. Tendría que codificar las funciones o, más probablemente, tener un script que interprete durante el tiempo de ejecución. Expondría las funciones necesarias para verificar el estado del tablero y las cubiertas y cementerios al script y las funciones para ejecutar acciones, y así sucesivamente. La secuencia de comandos es solo una cadena simple para almacenar junto con las otras variables asociadas con la tarjeta.
fuente
También estoy planeando un juego de cartas usando lenguajes web con mysql db. Actualmente estoy optando por una configuración muy genérica, por lo que se mantiene muy flexible para nuevas tarjetas únicas. Por ejemplo en lugar de:
podría ser fácilmente:
aplicar este concepto para todas las acciones simplificará las clases, permitirá la creación de nuevas tarjetas simplemente agregando una sola fila a la tabla de tarjetas.
Todas las opciones y habilidades se definirán en la base de datos en esa única fila.
fuente