J'essaie d'écrire une sorte de jeu de cartes à collectionner ici, d'une certaine manière, il est similaire à Magic The Gathering ou Yu-Gi-Oh! jeu de cartes.
Pour ceux d'entre vous qui ne la connaissent pas, en gros, dans le jeu, il existe un type spécial de carte (Cartes Magie / Cartes Piège / etc.), qui ont des effets spéciaux qui peuvent déformer les règles du jeu. Ce que je ne sais absolument pas, c'est comment implémenter la logique de ces cartes. J'ai une idée de stocker les données de la carte avec des indicateurs qui peuvent signaler le type de capacité dont elle dispose, mais cela serait très limité dans ce qu'elle peut faire (seulement une simple modification des statistiques, peut-être).
Pour vous donner une idée du type d'effets que ces cartes peuvent avoir, voici un exemple des effets des cartes de sorts qui sont présents dans Yu-Gi-Oh! jeu de cartes:
- Ravivez une créature qui a été détruite
- Prenez le contrôle de la créature de l'adversaire
- Modifier les statistiques de la créature en fonction de certaines conditions (par exemple, le nombre de créatures avec certains noms qui ont été détruites)
- Invoquez spécialement certaines créatures si certaines conditions sont remplies.
- Fusionnez deux créatures ou plus en une créature plus forte.
- Immunité contre certains effets spéciaux des cartes.
Konami a réalisé plusieurs jeux vidéo du jeu, avec l'intelligence artificielle et une variété de milliers de cartes. Je ne pense pas qu'il soit réellement possible de coder en dur la base de données entière, n'est-ce pas?
Maintenant, bien sûr, ce que j'essaie de faire n'est nulle part aussi complexe que ces jeux, mais je suis curieux, comment les implémentent-ils?
Il est assez futile d'essayer d'incorporer tout cela avec des commutateurs et des variables seuls. Vous devez soit avoir des fonctions de code en dur, soit, plus probablement, avoir un script que vous interprétez pendant l'exécution. Vous exposeriez les fonctions nécessaires pour vérifier l'état du plateau et des ponts et cimetières du script et les fonctions pour exécuter des actions, etc. Le script n'est alors qu'une simple chaîne à stocker avec les autres variables associées à la carte.
la source
Je prévois également un jeu de cartes utilisant des langages Web avec mysql db. J'opte actuellement pour une configuration très générique afin qu'elle reste très flexible pour de nouvelles cartes uniques. Par exemple au lieu de:
cela pourrait facilement être:
appliquer ce concept à toutes les actions simplifiera les classes, permettra de créer de nouvelles cartes en ajoutant simplement une seule ligne dans votre tableau de cartes.
Toutes les options et capacités seront définies dans la base de données de cette seule ligne.
la source