Strona główna » Po Godzinach » Gry » Krzyżówka liczbowa - Dokumentacja
 

Krzyżówka liczbowa - Dokumentacja

· Gra · Dostosowanie gry ·

Wstęp

Niniejszy artykuł ma za zadanie przedstawić sposób w jaki można wpłynąć na działanie skryptu do gry Krzyżówka Liczbowa. Dokumentacja obejmuje dokładny opis poszczególnych funkcji oraz jak można wpłynąć na wyświetlaną mapę.

Mapa

Struktura

Kod mapy składa się z trzech części rozdzielonych podkreślnikiem. Pierwszy element to szerokość mapy, a drugi to wysokość. Trzeci element to kod mapy. Generowanie planszy polega na odczytywaniu kolejnych wierszy na podstawie podanych rozmiarów, dlatego podanie krótszego kodu niż powinien spowoduje błędy wyświetlania mapy, a zbyt długiego wyświetlenie tylko części mapy. Przykładowo mapa 3 x 3, która ma cztery pola do uzupełniania (tj. na poziomie Niski) kod wygląda następująco: 3_3_0000eee0ee. Wyjaśnienie kodu mapy znajduje się w następnym akapicie.

Mapa dynamiczna

Jedną z niewątpliwych zasad programu jest możliwość dodawania własnych map. Istnieją dwie możliwości tworzenia map: dynamiczna oraz statyczna. Dynamiczne tworzenie mapy polega na napisaniu szablonu. Potem program sam stara się dopisać na planszy cyfry tak, żeby spełniały zasady gry. Do zapisu mapy w tym formacie używa się jedynie 0 i e. Program przez 0 rozumie pole wyłączone z rozgrywki tj. pole na którym powinny pojawić się ewentualne sumy, a e jako pole dynamiczne do którego ma zostać przypisana losowa, ale poprawna cyfra.

Wyjaśniając przykład z poprzedniego akapitu 3_3_0000ee0ee najłatwiej go zapisać w notatniku i podzielić na odpowiednie wiersze:

  1. 3 3
  2. 000
  3. 0ee
  4. 0ee

Tak w drobnym uproszczeniu program będzie widział zapis mapy. Na podstawie zapisanych najpierw rozmiarów mapy program odpowiednio odczytuje kod mapy. Należ pamiętać, żeby pierwsza kolumna i pierwszy wiersz zawsze były wypełnione 0. Dzięki temu program nie będzie informował, że nie ma gdzie dopisać wyliczonych wartości. W takim zapisie wyraźnie też widać, które pola program będzie uzupełniać losowymi cyframi.

Istnieją pewne ograniczenia związane z tworzeniem dynamicznych map: algorytm do tworzenia map jest algorytmem chciwym. Cyfra wpisana na dane pole jest losowane z listy wszystkich cyfr, które jeszcze nie występują w danym rzędzie i kolumnie do którego należy pole. Z tego względu generowanie odbywa się zawsze poprawnie tylko, gdy dane pole pionowo i poziomo jest połączone z ośmioma innymi.

Mapy statyczne

Program w momencie losowania mapy zastępuje tylko e poprzez nową, wylosowaną wartość. Z tego względu w kodzie mapy można spokojnie użyć wartości od 1 do 9. Tego typu zapis pozwala na wygenerowanie tej samej mapy za każdym razem. Przykładowo kod mapy 3_3_000045031 nie będzie losował żadnej wartości, ponieważ wszystkie są już ustawione. Tego typu zapis pozwala na zapisanie dowolnej mapy, aby można ją było komuś wysłać, albo urządzić turniej, ponieważ wszyscy gracze mają wtedy tą samą planszę. Należy jednak pamiętać, że wartości do wpisania można odczytać bezpośrednio z kodu mapy, ale w przypadku większych map jest to mało wygodne.

Mapy mieszane

Istnieje możliwość, aby połączyć mapy dynamiczne i statyczne. Wtedy tylko niektóre wartości będą losowane przez komputer. Tego typu rozwiązanie nie ma zbyt dużego zastosowania, ponieważ nie nadaje się do generowania całkowicie nowej zagadki przy każdym losowaniu planszy. Może to jednak znaleźć zastosowanie do tworzenia częściowo losowych turniejów: przykładowo niektóre pola są ustawione, ponieważ w ten sposób trudność pozostaje podobna, ale w kilku miejscach plansza się różni co będzie utrudniać podglądanie co wpisuje sąsiad.

Tworzenie i testowanie

Mapę można tworzyć w dowolnym edytorze tekstu. Kod mapy najlepiej pisać w oparciu o pewien zarys wyglądu mapy.

Mapę można przetestować dzięki wczytywaniu mapy z pasku URL. Wystarczy wtedy podać parametr map, a następnie pełny zapis mapy. Istnieje możliwość dodania opcjonalnego parametru help, która pozwala włączyć (wartość 1) lub wyłączyć (wartość 0) wskazówki podczas rozwiązywania. Nie trzeba wtedy zmieniać tego z poziomu ustawień. Kod mapy zapisany na pasku URL zostaje dodany do wyboru mapy jako opcja URL. Kod zostaje usunięty z paska URL w przeglądarce, aby nie można było w łatwy sposób podglądać rozwiązania. Przykładowo, aby załadować statyczną mapę 3_3_000045031 i włączyć wskazówki wystarczy do adresu strony dodać ?map=3_3_000045031&help=1. Taki adres można wstawić np. na stronę tak jak tutaj: mapa testowa.

  1. <a href="http://mattomatti.com/g13?map=3_3_000045031&help=1">mapa testowa</a>