Próbuję napisać tutaj rodzaj gry karcianej, w pewien sposób jest ona podobna do Magic The Gathering lub Yu-Gi-Oh! gra karciana.
Dla tych z was, którzy nie są zaznajomieni z nią, w zasadzie istnieje specjalny rodzaj karty (karty Zaklęć / karty Pułapek itp.), Które mają efekty specjalne, które mogą zagiąć reguły gry. Nie mam pojęcia, jak zaimplementować logikę tych kart. Mam pomysł na przechowywanie danych karty z pewnymi flagami, które mogą sygnalizować, jaką ma zdolność, ale byłoby to bardzo ograniczone w tym, co może zrobić (może tylko prosta modyfikacja statystyk).
Aby dać Ci wyobrażenie o tym, jakie efekty mogą mieć te karty, oto przykład efektów kart zaklęć obecnych w Yu-Gi-Oh! gra karciana:
- Ożyw stwora, który został zniszczony
- Przejmij kontrolę nad stworzeniem przeciwnika
- Zmodyfikuj statystyki stworzenia w oparciu o niektóre warunki (np. Liczba stworzeń o określonych nazwach, które zostały zniszczone)
- Specjalne przywołaj określone stworzenia, jeśli spełnione zostaną określone warunki.
- Połącz dwa lub więcej stworzeń w silniejsze stworzenie.
- Odporność na działanie niektórych kart specjalnych.
Konami stworzył kilka gier wideo, w tym AI i tysiące różnych kart. Nie wydaje mi się, żeby można było na stałe zakodować całą bazę danych, prawda?
Oczywiście, to, co próbuję zrobić, nie jest tak skomplikowane jak te gry, ale jestem ciekawy, jak je wdrażają?
Daremne jest próba włączenia tego wszystkiego w same przełączniki i zmienne. Będziesz musiał albo zastosować twardy kod funkcji, albo, co bardziej prawdopodobne, mieć skrypt, który będzie interpretowany podczas działania. Udostępniałbyś niezbędne funkcje do sprawdzania stanu tablicy, talii i cmentarzysk w skrypcie oraz funkcje do wykonywania akcji i tak dalej. Skrypt jest więc tylko prostym ciągiem do przechowywania wraz z innymi zmiennymi powiązanymi z kartą.
źródło
Planuję również grę karcianą przy użyciu języków internetowych z mysql db. Obecnie wybieram bardzo ogólną konfigurację, dzięki czemu jest ona bardzo elastyczna w stosunku do nowych unikalnych kart. Na przykład zamiast:
łatwo może to być:
zastosowanie tej koncepcji do wszystkich działań uprości klasy, pozwoli na tworzenie nowych kart poprzez dodanie jednego wiersza do tabeli kart.
Wszystkie opcje i umiejętności zostaną zdefiniowane w db w tym pojedynczym rzędzie.
źródło