MagLabMob

Spis treści 

Wstęp 

Program MagLabMob służy do generowania układu labiryntu do gry Magiczny Labirynt. Do generowania służy telefon komórkowy lub komputer. Gra jest bardzo fajna, opis i możliwość zakupu np. w sklepie Rebel. Mój program udostępniam bezpłatnie, wraz z kodem źródłowym, z możliwością korzystania w obu postaciach bez żadnych ograniczeń.

Wymagania 

Wymagany jest komputer lub komórka. Jedno i drugie urządzenie musi być wyposażone w Javę. Działanie na komputerze było testowane na systemach linux (Debian, Gnome) i Windows 2000, a na komórkach: Samsung S5200, Nokia C5230.

Instalacja 

Plik MagLabMob_1_05.zip należy rozpakować do dowolnego pustego folderu. Na Windowsie od tego momentu program jest zainstalowany i uruchamia się go poprzez plik maglab.bat. Pod linuxem konieczne jest jeszcze nadanie praw wykonania programu plikom *.sh.

Do komórki przekopiowujemy plik MagLabMob.jar, np. przy pomocy kabla usb. Potem instalujemy ten plik w komórce i od tego momentu generator dostępny jest w aplikacjach komórki. Jeżeli telefon instaluje tylko pliki jad, to oprócz jara kopiujemy także jad i instalujemy plik jad. Plik MagLabMob.jad instaluje program z bieżącego katalogu, natomiast MagLabMob_www.jad - ze strony www. Zamiast kopiowania plików przez kabel usb można ściągnąć je bezpośrednio z tej strony:
MagLabMob.jar
MagLabMob.jad    MagLabMob_www.jad

Uruchomienie 

W systemie Windows uruchamiamy maglab.bat.

Na linuxie maglab_term.sh lub maglab.sh. maglab.sh uruchamia bezpośrednio plik jar, zaś maglab_term.sh próbuje wcześniej utworzyć okno terminala, co może być przydatne w środowisku graficznym. Najpierw poszukiwany jest gnome-terminal, a następnie xterm. Jeżeli żaden z tych programów jest nieosiągalny program kończy działanie zostawiając w logu krótki komunikat.

Opis działania 

Od razu po uruchomieniu program prezentuje schemat labiryntu. Na komputerze jest to rysunek labiryntu oraz jest opis. Na komórce tylko opis. Rysunek labiryntu łatwiej wpada w pamięć, a chodzi o to, by osoba układająca labirynt nie zapamiętała go. Dzięki temu może brać udział w grze. Zasada kodowania opisu labiryntu wymaga komentarza:

Intepretacja wyników 

Przykładowy efekt działania programu jest taki:


-------------
|# #|#|#|# #|
   -       - 
|# #|# #|# #|
   - -       
|# #|#|# #|#|
             
|#|# # #|# #|
 -   - -   - 
|# # # #|# #|
       - -   
|#|#|# # #|#|
-------------

- 4 | 46
- 12 | 1236
- 24 | 13
- 45 | 1245
- 5 | 36
- 14

Niesprawiedliwosc: 54

Labirynt opisany jest od strony lewej do prawej. Po pierwszym znaku - (minus) podane są numery pozycji (licząc od góry), na których trzeba położyć poziomo ścianę labiryntu. W naszym przykładzie pierwsza kolumna labiryntu ma tylko jedną przegrodę i jest to czwarta przegroda od góry. Potem jest znak | (pipe, pionowa kreska), po którym podane są numery pozycji dla pionowych ścian labiryntu. W naszym przykładzie 4 i 6 pozycja mają pionową przegrodę. I tak dalej, na przemian poziome i pionowe przegrody. Gwarantowane jest, że wszystkie kratki labiryntu są ze sobą połączone. Każdy labirynt wykorzystuje wszystkie dostępne w grze 24 przegrody.

Niesprawiedliwość 

Program stara się wygenerować labirynt "sprawiedliwy". Sprawiedliwość mierzona jest w następujący sposób: dla każdego gracza obliczana jest sumaryczna długość drogi, czyli suma długości dróg do każdego pola na planszy. Różnica między najkrótszą sumaryczną drogą a najdłuższą to miara niesprawiedliwości labiryntu. Wygenerowany losowo labirynt bywał bardzo niesprawiedliwy, co psuło grę. Program generuje po cichu 10 labiryntów i wyświetla ten najbardziej według niego sprawiedliwy. Dzięki temu z wartości np. 192 schodzi się do 20, 30. Mam nadzieję, że obecna wersja będzie przyjemniejsza w użyciu.

Zawartość pakietu 

Pakiet zawiera następujące pliki:

  • MagLabMob.jar - plik z aplikacją na komórkę
  • MagLabMob.jad, MagLabMob_www.jad - pomocnicze pliki do instalacji pliku jar. Plik jad wymagany jest np. przez niektóre komórki Samsunga
  • MagLabMob_sh.jar - plik z aplikacją na komputer
  • maglab.sh, maglab_term.sh - pliki do uruchomienia programu na Linuxie
  • maglab.bat - plik do uruchomienia programu na Windowsie
  • MagLab.java, MagLabMob.java - kod źródłowy programu
  • build.xml - plik pomocny przy kompilowaniu i pakowaniu programu, skrypt programu ant
  • maglab.html, style.css - pliki pomocy, czyli bieżący dokument

Historia wersji programu 

1.05, 21.07.2011
  • Aktualizacja instrukcji, plików jad

1.04, 06.02.2011
  • Aktualizacja instrukcji (pola description, content) Pobierz.

1.03, 30.01.2011
  • Naprawa błędu z niedziałaniem na Windowsie przy uruchamianiu z katalogu ze spacją w nazwie. Pobierz.

1.02, 06.11.2010
  • Generowanie 10 labiryntów i wybór najbardziej sprawiedliwego. Pobierz.

Zakończenie 

Jestem otwarty na sugestie. Będę wdzięczny za informacje o nieprawidłowym działaniu strony lub programu. Powinien działać na każdej komórce i na każdym systemie operacyjnym. Zachęcam do omawiania spraw związanych z tym programem na specjalnym forum. Problemy i sugestie nie wymagające dyskusji najlepiej zgłaszać bezpośrednio w bugzilli. No i jest jeszcze mój mail na dole strone.

Spis treści   

Jarek Czekalski, ostatnia modyfikacja 23.07.2011