Magazyn Enter, grudzień 1993, strony 151-152

Andrzej Stasiewicz

Krajobraz przed bitwą

Wojny Rdzeniowe stają się ostatnio popularne. Nasza redakcja jest tu istotnym ośrodkiem myśli i sztuki wojennej. Zorganizowaliśmy I Mistrzostwa Polski, rycerstwo utrzymuje z nami stały kontakt, niecierpliwie się dopytując o następne batalie. Batalie będą — oto mamy dwa nowe środowiska, które zastąpią wysłużonego Wojownika — dotychczasową oficjalną „ubitą ziemię” Bractwa Wojen Rdzeniowych.

Najpierw spójrzmy na na autorów obu programów. Adam Ryba, wicemistrz Polski, który jak mało kto zna wojenne rzemiosło, przysyła swego Arbitra. Na przeciwko, z programem o tajemniczej nazwie CCW (Cordat Core Wars) staje krakowska firma Cordat, o której ostatnio mówi się dużo i dobrze.

Siły zdawały się nierówne. Arbiter dotarł do mnie w postacji zwykłej dyskietki, opisanej starannie, acz ręcznie. CCW przybył w pudełku koloru komandowskiego munduru, a w nim dwie eleganckie broszurki z opisem, dyskietki 1.2 MB i 1.44 MB, na wypadek, gdyby ktoś miał tylko jeden rodzaj napędu, licencje, umowy, ulotki — pełna fachowość. Arbitra trzeba było ręcznie przerzucić na twardy dysk, CCW instalował się sam łatwo i poprawnie.

Arbiter w trybie podglądu areny. Obrazek pochodzi ze strony Corewar – the Ultimate Programming Game

Pierwszego uruchomiłem Arbitra, bo nie rokował dobrze. Tymczasem przejrzyste menu z borlandowskiej szkoły Turbo Vision, ascetyczny, ale od razu zrozumiały wygląd zbrojowni nieco rozwiały obawy o jego amatorskim pochodzeniu. Wtedy zajrzałem do CCW, jak zwykle dziękując chłopcom z Microsoftu za możliwość chwilowego przełączania się z jednego programu na drugi.

Program Cordat Core Wars w trybie walki. Obrazek pochodzi ze strony Corewar – the Ultimate Programming Game

To, co ujrzały niedoświadczone oczy wojownika, zaparło dech w piersi. Graficzny ekran niezwykłej urody, jak kapiąca bogactwem wschodnia sala rycerska, zachęcał do natychmiastowego przeprowadzenia ćwiczebnej batalii. Piękny wystrój, wzorowany na Windows, a przecież jeszcze bardziej urodziwy.

W boju nie uroda jest najważniejsza, przeto skarciwszy się za tępe w ekran zagapienie wziąłem się do pracy, czyli porównywania obu programów.

Edycja wojownika w języku REDCODE to początek szlifowania broni. Nie podobało mi się, że w Arbitrze nie ma edytora — określa się jedynie ścieżkę dostępu do jakiegoś „wolno stojącego” edytora. Znaczy to, że gospodarka plikami, zmienianie katalogów, nazw itd. jest możliwe wtedy, gdy potrafi to ów edytor zewnętrzny. Ponieważ jednak pracujemy zazwyczaj nad jednym programem, którego nazwa w Arbitrze może być określone i jest przekazywana edytorowi, rozwiązanie to jest wystarczające i skuteczne, choć pozostaje nieeleganckie. Z drugiej strony, ci rycerze, którzy mają swoje ulubione edytory, powinni natychmiast ucieszyć się z takiego rozwiązania.

CCW jest uzbrojone w edytor, wielce solidny i przystojny. Zauważyłem że nie trzyma kolumn w akapitowaniu klawiszem TAB (rycerstwo lubi widzieć kolumny etykiet, rozkazów i argumentów solidnie wyrównane), ale nie chcę się czepiać, tym bardziej, że adwersarz sprytnie uniknął starcia na tym etapie. CCW zawiera wszystkie mechanizmy gospodarki plikami, katalogami i dyskami, wzorowane na Windows. Filozofia słuszna — jak robić edytor, to kompletny.

Po edycji jest kompilacja, czyli etap tłumaczenia tekstów źródłowych z języka REDCODE na znany ekspertom slang areny. Swoją drogą, etap ten zawieraja oba programy, choć sądziłem, że to zanikający archaizm. Rycerza nie interesuje kompilacja i może ona odbywać się automatycznie i w tle, tym bardziej, że trwa ułamki sekund. Skoro jednak w tym pokoleniu środowisk jest pojęcie kompilatora, oceńmy go.

Adam Ryba zaczyna zbierać punkty. Stary mistrz doskonale pojął, czego trzeba ćwiczącemu w domowym zaciszu wojownikowi. Trzeba mu wielu prób, zmian, eksperymentów i sparringów. Jest więc jego kompilator narzędziem, któremu wystarczy pokazać, że walczyć będzie ten, ten i tamten (nie wiem, jaka jest pojemność buforów, ale np. cała stawka z I Mistrzostw Polski zmieściła się za jednym zamachem). Owo pokazywanie to już perfekcja ze stajni Turbo Vision — skrolingi i zaznaczanie, ale z typowo rycerską powściągliwością i ascezą. Gotowe do walki kompilaty są składowane na dysku w miejscu wskazanym w opcjach programu. Czekają na wywołanie do walki. Wszystko jest pomyślane jak najprościej. Gdyby zaznaczać klawiszem INS, a nie spacją, czulibyśmy się jak w Norton Commanderze.

Kompilator zna arytmetykę w polach argumentów, nawet gdy w wyrażeniu uczestniczą symboliczne etykiety.

Tymczasem w CCW kompilujemy pojedynczo, w dodatku wojownicy rozproszeniu gdzieś po dysku wymagają zawsze od nowa pokazywania ścieżek dostępu, choć system nie powinien być tak gorliwy w przywracaniu ścieżkom ich pierwotnego kształtu. Kompilaty umieszczane są w buforze — przedsionku areny. Przedsionek ten można zapisać na dysku, można też w nim grzebać, usuwając lub dodając doń nowe programy. Zarządzanie zawartością przedsionka nie jest tak łatwe, jak mogłoby być, gdyby wszystkie potrzebne operacje były robione na jednej liście poprzez wskazywanie i informowanie, że to ma być skasowane, tamto zapisane itd. Brak tu zarządcy plików. Oczywiście wszystko można zrobić, niemniej wydobywanie pojedynczych opcji z menu, które skwapliwie się zwija lub pamiętanie gorących klawiszy, nieco denerwuje w początkowym etapie użytkowania, gdy liczne meandry programu jeszcze nie wyryły się w oszołomionej grafiką pamięci.

W CCW nie ma arytmetyki w adresach.

Młodego wojownika trzeba uruchomić w szkoleniowych warunkach, bez przeciwnika, by sprawdzić jego umiejętności, usunąć błędy, poprawić taktykę. W obu programach jest debugger, ale a tym etapie tylko w CCW widzimy wojownika na arenie w postaci punktów. To Cordat odrywa kupony od swego graficznego interfejsu. Oba programy umożliwiają pełną obserwację tego, co się dzieje w kodzie programów. CCW nawet pozwala na dokonywanie zmian na arenie (edycja komórki!). Zaznacza też, do kogo nalezy dana komórka, tzn. kto coś tam zmieniał. Z kolei Arbiter pozwala na ustawienie pułapek oraz wyodrębnia aktywne podprocesy uruchomione rozkazem SPL. W obu programach brakowało mi możliwości ruchu w tył, bądź choćby odwołania ostatniej operacji, by móc przyjrzeć się jej jeszcze raz.

Wreszcie walczymy ostro. W obu programach jest stosowna opcja „Turniej”, ale najpierw ustalmy parametry areny. W Arbitrze rzecz jest załatwiona krótko: w menu, gdzie zgromadzono różne szczegóły, jest stosowny panel, gdzie wypowiadamy się na temat rozmiaru areny, dystansu, liczby potyczek, sposobu punktacji itd. Jest tam absolutnie wszystko, co potrzebne i absolutnie nic więcej. Opcje oczwiście można zapisać na dysku, by nie bawić się w przyszłości w ich ustawianie.

W CCW jest nieco bałaganu. Niektóre opcje, np. wspomniany rozmiar areny, wymagają restartu programu, by się uaktywnić, inne obowiązują natychmiast. Jest to oczywiście skomentowane stosownym komunikatem, niemniej musi dziwić. Ponadto troche opcji znajdujemy w wejściu System, trochę w Zarządcy, trochę w Walce. Nie jest to przypadkowe — autor programu tak to sobie wymyślił, niemniej ja oczekiwałbym wszędzie jak największej prostoty. Dajmy na to opcji areny nie trzeba rozdrabniać — prawdopodobnie każdy trening odbywa się na takiej samej arenie, co i późniejsza walka.

W Arbitrze wskazujemy adwersarzy tym samym nortopodobnym mechanizmem, którego używał kompilator. Panel zaznaczania patrzy tym razem na pliki z rozszerzeniem *.OBJ, czyli pliki po kompilacji. Wystarczy zaznaczyć klawiszem spacji potrzebne nazwy (nie wiem, ile ich może być, ale z tego, co widzę, to dużo), nacisnąć ENTER i sędzia zawodów, spojrzawszy na ustawienia opcji, rozpoczyna turniej. Jego przebieh śledzimy na ekranie. Wyniki zapisują się w pliku tekstowym. Jest to dokumentacja zawodów. W programie nie ma mechanizmu wydruku, gdyż autor uznał, ze plik tekstowy każdy umie wydrukować sam.

W CCW, jak już mówiłem, kompilator umieszcza pliki w buforze. Może ich tam być 16 i to jest maksymalna liczba zawodników w turnieju. Organizatorów turnieju rangi Mistrzostw Polski to zmartwi, bo znów trzeba będzie dzielić uczestników na podgrupy. Wyniki są śledzone na ekranie, ale nie ma możliwości ich wydrukowania. Przewagą tego systemu na Arbitrem jest wspomniana już możliwość graficznego podglądu areny. W Arbitrze, który nie dysponuje grafiką, taki podgląd jest też możliwy, jednak tylko w mało subtelnym trybie tekstowym.

Arbiter zdecydowanie bardziej niż CCW nadaje się do przeprowadzania turniejów. Wydaje się, że ten walor autor od początku sobie zamierzył — stąd doskonale zresztą zrealizowane operacje blokiem na liście zawodników oraz dbałość o dokumentację zawodów.

Pora na podsumowanie. Przy wszystkich różnicach, oba programy są bardzo cennym nabytkiem dla osób interesujących się tematyką Wojen Rdzeniowych. CCW jest zrobiony niezwykle starannie, wielkim nakładem sił i z podziwu godną dbałością o szczegóły. Wykazuje jednak liczne szorstkości, charakterystyczne dla debiutanckich wersji zupełnie nowego oprogramowania, gdzie w dodatku nie można oprzeć się na dorobku konkurencji. Trzeba czasu i konstruktywnyej krytyki prawdziwych użytkowników, którzy przy programie spędzą całe miesiące, żmudnie ostrząc miecze. Program jest zaopatrzony w podręcznik wojen rdzeniowych autorstwa Cordatu. Widać zresztą zewsząd, że Cordatowi zależy na tym temacie i nie boi się inwestować w wychowanie młodego pokolenia bitnego rycerstwa. Przeto program polecam szczególnie wszystkim początkującym, którzy chcą się uczyć walki na krzemowych równinach.

Arbiter natomiast to pokaz sprawności programistycznej podporządkowanej ściśle wyznaczonemu celowi. To sala rycerska, zbudowana z nagich cegieł, gdzie są jednak wszystkie instrumenty potrzebne do walki i treningu. Tu mieszka i ćwiczy mistrz — taki program mógł napisać tylko najlepszy praktyk. By móc zainteresować swą ofertą młodych adeptów, autor nie może jednak spoczywać na laurach. Wojny Rdzeniowe to dyscyplina trudna i jeszcze mało spopularyzowana. Z najlepszym nawet programem, ale bez solidnego podręcznika, nie przejdzie się od pługa do mistrzowskich laurów. Autor mówi, że już pracuje nad opisem, ale póki co, jest Arbiter przeznaczony dla stratega zaawansowanego, który szuka miejsca do sprawdzenia swych nowych idei w trunej sztuce walki.

Dzięki swym walorom porządkującym listy zawodników, szybkości, a także prostocie, właśnie Arbiter będzie oficjalną areną zbliżających się II Mistrzostw Polski w Wojnach Rdzeniowych.