W labiryncie

Mazes for Programmers Cover
Tytuł: Mazes for Programmers Code Your Own Twisty Little Passages
Autor: Jamis Buck
Rok: 2015
ISBN: 978-1-68050-055-4

Dawno, dawno temu był taki serial W LabiryncieW, który uchodzi za pierwszą polską operę mydlaną. W tym samym czasie ja wraz z bratem zagrywaliśmy się w MaziacsW. Grę, która dla nas, gówniaków LVL 5 i LVL4, był na tyle trudna, że wciągała. Jak ktoś chce się spróbować, to może poszukać w necie. Linka nie podam, bo większość wymaga Javy jako appletu. Nie będę promował kiły wśród znajomych.

Zanim jednak zaczniecie szukać w internetach grywalnej wersji, to rzućcie okiem na książkę „Mazes for Programmers Code Your Own Twisty Little Passages” Jamisa Bucka. Książka poświęcona jest algorytmom tworzenia labiryntów na potrzeby gier. Począwszy od prostych, gdzie mamy jedną ścieżkę oraz wzorce, poprzez bardziej złożone, pseudolosowe, aż po labirynty wielopoziomowe. Efektywnie jest to 6 algorytmów, które są modyfikowane w zależności od potrzeb. Całość opisana za pomocą prostego języka, który tylko miejscami wymaga głębszego skupienia. Kod programów jest naklepany w Rubym, co można uznać za rozsądne. Ja z moją zerową znajomością tego języka czytałem kod i rozumiałem, co autor chce przekazać.

Poza generowaniem logicznej struktury labiryntów poznamy tu też tajniki ich rysowania. Książka obejmuje nie tylko labirynty na planie prostokąta, ale też labirynty kołowych czy o określonej grubości ścian. Chyba jednym z najbardziej efektownych jest labirynt na planie Wstęgi MöbiusaW. Jednym z ciekawszych aspektów jest wizualna analiza algorytmów poprzez wprowadzenie kolorowania, które uwypukla schematy działania poszczególnych algorytmów.

Jeśli miałbym się do czegoś przyczepić, to brak rozdziału poświęconego algorytmom rozwiązywania labiryntów. Na potrzeby książki wprowadzono tylko DijkstręW w podstawowej wersji. Trochę mało. Zabolał też uproszczony model składowania danych. Autor ogranicza się do tablic, a o metodzie grafowej tylko wspomina. Z drugiej strony komponując wiedzę z książki z wiedzą z kursu Advanced Data Structures możemy pokusić się o coś bardziej rozbudowanego 🙂

Książka nie jest jakoś super przydatna w codziennej pracy programisty. Z drugiej strony, programowanie to przede wszystkim pasja, hobby i dobra zabawa. Zatem taki przerywnik w smutnym świecie kolejnych CRUDów jest bardzo fany. Na pewno jest to pozycja obowiązkowa dla tych, którzy chcą zająć się pisaniem gier. Duża dawka pojęć, które można przekuć na zapytania do google.

3 myśli na temat “W labiryncie

  1. Linki do wikipedi są nieprawidłowe, zamiast em na początku powinno chyba być pl 😉

  2. Złożone gry używają A*, więc dla takich labiryntów chyba Dijkstra wystarczy. Sama pozycja fajna, przynajmniej z początku.

Napisz odpowiedź

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax