Wojny rdzeniowe (1)
Gry komputerowe kojarze nam się nieodparcie z widokiem wpatrzonego w kran młodzieńca z manetką w ręku pogrążonego w beznadziejnych próbach wykazania się lepszym od komputera refleksem. Nawet tradycyjne gry planszowe i karciane: go, szachy, brydż w wersji komputerowej nie wychodza poza ten schemat – grasz z komputerem, próbując zmierzyć się z nim osobiście.
Jakże daleko obraz ten odbiega od ideału naszej pracy z komputerem, ideały, w którym człowiek planuje działania maszyny, a ta precyzyjnie realizuje myśl twórcy programu! Różnica jest taka, jak między ręcznym sterowaniem gospodarką w systemie centralistycznym a parametrycznym zarządzeniem rynkiem, gdy decydent troszczy się nie tyle o rozwój poszczególnyc branż, co o stworzenie sprzyjających warunków wszelkich udanych przedwsięwzieć.
Nic więc dziwnego, że zaproponowana w 1984 roku w majowym numerze “Scientific American” przez autora stałej rubryki “Computer Recreations” A.K. Dewdneya (następcy niezapomnianego Martina Gardnera i jego Mathematical Games) nowa zabawa, zwana Core Wars (“wojny rdzeniowe”), zdobyła z miejsca niebywałe powodzenie: w tej grze bierzemy udział pośrednio, tak, jak trenerzy piłkarscy lub treserzy bojowych kogutów. Prawdziwą sprawnością trzeba wykazać się w samotnym wysiłku intelektualnym tworząc program, zdolny następnie w pojedynku pokonać program przeciwnika. W trakcie samej walki, gdy zawodnicy wyjdą już na ring, możemy jedynie trzymać kciuki i śledzić bieg wydarzeń na arenie. Nasze dzieło musi radzić sobie samo, dowodząc swej doskonałości.
Legenda o szalonym programiście
Sam Dewdney rodowód swego pomysłu wywodzi z prehistorii informatyki: “wojny rdzeniowe” są bezpośrednim wynikiem studiów na słynną niegdyś w wielu ośrodkach obliczeniowych legendą o programie-wirusie, dziele szalonego programisty, którego jedyną funkcją było powielanie się w pamięci komptera każdorazowo, gdy był on uruchamiany i dołączanie się do wszystkich innych programów. Mógł on także przenosić się z komputera na komputera siecią korporacji X. Zarażone komputery szybko wypadały z pracy, blokując się jedynym działaniem, które zdolne były wykonywać do swych ostatnich chwil: powielaniem wirusa. Ślady tej legendy, a także przykłady tej niebezpiecznej realizacji, trafiły także na łamy “Komputera” (“Groźne wirusy” nr 1/87).
W legendzie żadne czynione przez specjalistów próby znalezienia ratunku nie skutkowały: trzeba było wziąć klina klinem. Posłańcy króla (właściciela korporacji X) trafili do jeszcze większego czarownika (jeszcze bardziej szalonego programisty), który w swej pustelni żywiąc się tylko zuzytą taśmą papierową dokonywał cudów, o któych nawet szeptem mówić strach. Niestety – odprawił on ich ze starym wydrukiem, nie okazując żadnego zainteresowania dla oferowanych pieniędzy i superkomputerów. Dopiero, gdy księżniczka (córka samego prezesa) przyszła doń boso, prosząc o pomoc w tworzeniu czyniących dobro programów, złamał się i napisał wirusofaga-program, który w zarażonych komputerach mnożył się równie szybko jak wirus, niszcząc jednak za każdym razem jedną jego kopię. W zdrowym komputerze nie był groźny, bo nie mógł się mnożyć. W zarażonym dzielił się, póki starczyło mu wirusa za pożywienie.
Dalej romantyczna legenda opowiadała o skomplikowanych dziejach miłości czarownika i królewny. Musieli oni pokonywac opór i podstępy złego tyrana, tworząc kolejne, coraz doskonalsze pokolenia wirusów i fagów.
I rzekł: niech stanie się światło…
Jak widać, w bajkę tę, opowiadaną odwiedzającym ośrodki i studentom pierwszego roku, trudno było uwierzyć, ale chcącego nie ma nic trudnego. Dewndey wraz ze swym studentem z University of Western Ontaria Davidem Jonesem postanowili: nawet jeśli tak nie było, to będzie! – i opracowali reguły gry “wojny rdzeniowe” oraz pierwszego arbitra – program MARS zarządzający polem walki. Nazwa gry przypomina, że jeszczenie niedawno arena walki, czyli pamięć operacyjna komputera, fizycznie ralizowana była w postaci misternej siatki tysięcy koralików-rdzeni magnetycznych, ręcznie nawleczonych na osnowę z miedzianych drucików.
Do gry w wojny rdzeniowe potrzebne są trzy rekwizyty:
- pole walki, czyli komputer dysponujący pamięcią operacyjną, z której można wydzielić ciągły obszar 8000 komórek adresowany w sposób względny i zamknięty logicznie w pętlę (a więc bezpośrednio po komórce 7999 następuje komórka 0, a adresy -4000 i 3999 wskazując tę samą komórkę);
- bój wojny, czyli program zarządzający MARS (od Memory Array Redcode Simulator), który wprowadza obu przeciwników na eranę w dowolnie wylosowanych miejscach, po czym rozpoczyna wykonywanie obu walczących programów w ramach swego rodzaju systemu z podziałem czasu, a więc wykonując na zmianę po jednej instrukcji każdego z walczących programów, a na koniec ogłasza porażkę zawodnika, który nie jest w stanie wykonać ruchu (komórka, do której w poprzednim ruchu zostało przekazane sterowanie nie zawiera sensownego rozkazu) lub remi, jeśli w trakcie z góry określonej liczby ruchów (zwykle ok. 1 mln) żaden z przeciwników nie zostanie pokonany.
- co najmniej dwóch zawodników, którymi są programy napisane w specjalnym języku typu asemblerowego, zwanym Redcode. Listę jego rozkazów i reguł gry podajemy obok w osobnej ramce.
Oczywiście dobrze jest, jeśli nasza wersja programu MARS umożliwia kibicowanie, a więc śledzenie prebeigu walki w trakcie pojedynku, wyświetlając na ekranie obraz areny wraz z zaznaczonymi położeniami obu przeciwników (komórkami zapisanymi ostatnio przez każdego z nich) oraz ich serc: fragmentów właśnie wykonywanych, a także komórek, których zawartość jest zmieniana przez poszczególne rozkazy.
Inną przydatną funkcją programu MARS jest edytor, umożliwiający pisanie programów w języku symbolicznym Redcode oraz ich testowanie, jednak bez tych dodatkowych funckji można się obejsć.
Ziemskie dzieje wojen rdzeniowych
Wojny rdzeniowe od pierwszej publikacji autorów w “Scientific American” (przypominamy: maj 1984) stały się przebojem najpierw w USA, a od jesienie 1985 r., kiedy to w miesięczniku “Your Computer” ukazał się program MARS w wersji przeznaczonej dla brytyjskiego komputera szkolnego BBC-Micro, także w Wielkiej Brytanii. Jak grzyby po deszczu zaczęły powstawać kluby miłośników (zapaśników?) tej zabawy, już w 1985 r. rozegrano pierwsze mistrzostwa USA. W swych kolejnych publikacjach (“Scientific American”, marzec 1985 i styczeń 1987) Dewdney opublikował nieco zmienione reguły gr (wzbogacone o możliwość dzielenia się programów) oraz obszerne analizy możliwych wariantów strategii i taktyki walki.
Gra odniosła nawet sukcesy literackie: oto bestsellerem stała się francuska powieść sensacyjna, której autorzy – Thiery Breon i Denis Beneich – opowiadają, jak to Stany Zjednoczone, zamiast obstawać przy embargu, postanowiły sprzedać Związkowi Radzieckiemu superkomputer meteorologiczny, mający służyć do symulowania stanu atmosfery i przewidywania pogody w tym olbrzymim kraju. Producent komputera na straży bezpieczeństwa swego kraju postaiwł jednak bomby w programie operacyjnym. Miały one, w wypadku wykorzystywania komputera do celów innych niż meteorologiczne lub w wypadku pojawienia się hasła, jakim były specyficzne dane z amerykańskich punktów obserwacyjnych na Alasce, przystąpić do niszczenia radzieckiego oprogramowania w całej sieci państwowej. Fikcja jak fikcja, ale skoro już musimy bawić się w wojnę – rzucajmy w siebie zamiast twardych głowic atomowych miękkie bomby programowe – komentuje Dewdney.
Spróbuj swych sił!!!
Bawią się inni – zabawmy się i my! Proponujemy naszym Czytelnikom aż dwie konkurencje: stworzsenie polskich wersji programy MARS na najpopularniejsze w Polsce komputery oraz udział w pierwszym mistrzostwach Polski, które zamierzamy zorganizować w lutym 1988 r., w trakcie trzeciej wystawy Home-Office Personal Computer ’88, której tym razem towarzyszyć będzie ogólnopolska konferencja PC-Standard’88. Nasza redakcja będzie, w raz z Agpolem i Klubem Użytkowników Komputerów Profesjonalnych RS NOT, współorganizatorem obu imprez.
W następnych numerach opiszemy szerzej strategię i taktykę wojen rdzeniowych, przykładowe programy z USA oraz nadesłane przez Was, a także szczegółowe zasady uczestnictwa w turnieju mistrzowskim.
Dzisiaj natomiast zapraszamy na sparring Karła z Bliźniętami, toczony pod nadzorem programu MARS, opracowanego przez R. Martina na ekranie komputera Apple Macintosh (źródłowy kod programu w języku C można otrzymać wysyłać 15 dol. pod adres: Robert Martin, 12310 Lee Ave, Waukega, Illinois 60085, USA). Już po dwóch minutach walki wygrały Bliźnięta. Komórka, której zawartość zdążyły zniszczyć zanim zawarta w niej komenda Karła zostałą wykonana, oznaczona jest na rysunku 6 kwadratem. Obok obu głównych przeciwników, których sylwetki przedstawiamy w ramkach w grach pokazowych, występowała także Dżdżownica (rys. 3) oraz najprostszy z możliwych walczących programików – choć wcale nie tak łagodny i łatwy do pokonania – Skoczek, składając się zaledwie z jednej instrukcji – patrz rys. 2.