Strona główna » Po Godzinach » Gry » Chińczyk - Dostosowywanie gry
 

Chińczyk - Dostosowywanie gry

· Gra · Dostosowywanie gry ·

Wstęp

Opublikowana gra Chińczyk może zostać dostosowana na wiele różnych sposobów. Między innymi nową mapę można utworzyć praktycznie bez znajomości programowania. Po krótkim przejrzeniu kodu źródłowego z łatwością zmodyfikuje się zasady gry jak również doda się nową AI. W niniejszym artykule przedstawię jako można tego dokonać - zapraszam do lektury.

Mapa

Opis

Elastyczność dostosowywania programu daje możliwość edytowania mapy na której się gra. Samo utworzenie takiego pliku nie pozwala na wykorzystanie pełni możliwości zastosowanego rozwiązania, ale z pewnością pozwoli zapoznać się na jakiej zasadzie działa program. Mapa jest przechowywana jako JSON co pozwoli na łatwe zarządzanie przy pomocy JavaScript oraz na ewentualnym rozszerzaniu możliwości programu.

Kolejne wartości

Główny obiekt zapisu mapy ma następujące wartości:

  1. {
  2.  "sizeX": 11,
  3.  "sizeY": 11,
  4.  "maxplayers": 4,
  5.  "startFields": 4,

(2. - 3.) Wartości sizeX i sizeY określają całkowity rozmiar planszy czyli, gdyby narysować siatkę to jakich by była rozmiarów. Warto tutaj nadmienić, że mapa opiera się na siatce i możliwe jest jedynie, aby utworzone pola były do niej przyciągnięte. Następne dwie wartości to (4.) maxplayers na ilu graczy jest przygotowana plansza - tutaj istnieje możliwość na ustawienie więcej niż 4. Z kolei (5.) startField określa ile jest pól startowych tj. ile pionków będzie miała każdy z graczy.

  1.  "players": [
  2.   {
  3.    "startID": 0,
  4.    "endID": 39,
  5.    "startX": 1,
  6.    "startY": 8,
  7.    "startgo": "123",
  8.    "endX": 1,
  9.    "endY": 4,
  10.    "endgo": "111"
  11.   },

Dalej należy określić parametry dla każdego z graczy. Pole players to lista o maxplayers elementach. i-ty element listy odpowiada i-temu graczowi. Każdy z graczy musi mieć określony: (8.) numer pola startowego i (9.) końcowego. Ze względu na to, że pozycja i ustalenie pól bazy i końcowych są inne dla każdego gracza to określa się lewy, górny róg pierwszej pozycji, a następnie na podstawie kodu program wylicza pozycje następnych pól. W przypadku bazy tj. pól startowych pierwsze pole określają współrzędne (startX, startY), a kod startgo. Analogicznie jest dla pól końcowych pole określa (endX, endY), a kod dla kolejnych pól endgo.

Kod określania pozycji kolejnych pól składa się z czterech różnych znaków - cyfr od 0 do 3. Znak 0 przesuwa kolejne pole o 1 w górę, 1 o jeden w prawo, 2 o jeden w dół, a 3 jeden w lewo. Należy pamiętać, że kod jest ustawiany względem współrzędnych pierwszego pola określonego oddzielnymi wartościami.

  1.  "fields": 40,
  2.  "map": [
  3.   {
  4.    "startX": 0,
  5.    "startY": 5,
  6.    "go": "111100001122221111223333222233000033330"
  7.   }
  8.  ]
  9. }

Po wpisaniu określonych właściwości dla każdego gracza można przejść do napisania kodu mapy tj. pól po których będą poruszać się pionki. (48.) Na początek należy określić z ilu pól (fields) składa się dana mapa, a następnie w polu map należy zapisać (51. - 52.) pole początkowe oraz (53.) kod mapy.

Tak przykładowo utworzona mapa, a następnie przypisana do zmiennej map w programie pozwala na tworzenie całkowicie nowych i własnych map. Poniżej został zamieszczony oryginalny plik planszy zaimplementowanej w pierwszej wersji gry Chińczyk.