INTERNET, NOWE TECHNOLOGIE, WEBDEVELOPMENT, BADANIE INTERNETU

18 GRUDNIA 2013  /  TECHNOLOGIE  /  1 KOMENTARZ

WOJNY RDZENIOWE

Wojny Rdzeniowe (w oryginale Core Wars) powstały w 1983 roku na uniwersytecie Western Ontario w Kanadzie. Grę stworzył amerykański matematyk dr Dewdney w formie narzędzia naukowego dla studentów. Cel gry był typowo edukacyjny - zrozumienie zasady działania programów w pamięci komputera. Prosty i zarazem genialny pomysł zamienił się w coś znacznie większego, gdy został opisany przez magazyn "Scientific American". Od tego momentu Wojny Rdzeniowe zyskały nieśmiertelność, stając się popularne na całym świecie.

Zasady gry są proste i zrozumiałe dla wszystkich. W wydzielonym obszarze pamięci komputera walczą ze sobą dwa programy komputerowe. Pojedynek kończy "śmierć" jednego z zawodników lub remis. Walkę można śledzić na ekranie monitora w formie graficznej, gdzie każdy piksel to jedna komórka pamięci. W zależności od tego gdzie znajdują się zawodnicy i co robią, ekran zapełnia się punktami. Widać przemieszczające się ciągi bajtów należące do programów, a także miejsca, w które zawodnicy uderzają, próbując zatrzymać lub zdezintegrować program przeciwnika.

Programy tworzone są w specjalnym języku zwanym Redcode. Język zbliżony jest do asemblera i składa się z dziesięciu instrukcji. Każda z nich służy do specyficznych operacji na pamięci komputera, między innymi do odczytywania, zapisywania i usuwania zawartości wskazanych komórek pamięci, są również instrukcje warunkowe.

Gdy programy są gotowe, rozpoczyna się walka, którą nadzoruje arbiter w postaci programu o nazwie MARS (Memory Array Redcode Simulator). Arbiter umieszcza programy w losowych miejscach pamięci, a następnie wykonuje na przemian po jednej instrukcji każdego z nich.

W tym miejscu zaczyna się najciekawsze. O losach pojedynku decyduje inwencja twórców, którzy pisząc swoje programy muszą stanąć przed podstawowymi dylematami związanymi z programowaniem.

Najprostszy zawodnik będzie bajt po bajcie zerował komórki pamięci w nadziei, że w końcu trafi na przeciwnika i zniszczy jego kod. Taki program składa się zaledwie z kilku instrukcji, dzięki czemu całość będzie wykonywana częściej niż program o dłuższym kodzie. Jego zaletą jest szybkość wykonywania, która często może zadecydować o zwycięstwie.

Dłuższy program może poszukiwać przeciwnika przy pomocy bardziej złożonego algorytmu i jednocześnie zabezpieczać się przed atakiem. Jednym z widowiskowych sposobów na obronę i podniesienie skuteczności jest multiplikacja. Program może rozbić się na kilka mniejszych, które zaczną działać na własną rękę. Można także przejąć fragment programu przeciwnika lub zabezpieczyć się, sprawdzając integralność własnego kodu.


Pojedynek między programami Dwarf Scout i Little Factory

Grę pierwotnie stworzono dla komputerów Apple, ale dziś jest ona dostępna dla wszystkich platform, w tym dla peceta. Organizowane są turnieje, różniące się często składnią języka, która z biegiem lat doczekała się drobnych usprawnień. Gra wykorzystywana jest także jako pomoc naukowa na uczelniach, niestety, głównie amerykańskich i zachodnich. Nie słyszałem, aby jakikolwiek polski uniwersytet wykorzystywał ją w toku edukacji.

Wojny Rdzeniowe oprócz walorów edukacyjnych mają również zastosowanie w badaniach naukowych. Idea gry symulacyjnej, w której posiadające cechy oraz niezależność programy oddziałują między sobą i otoczeniem, to dziś podstawa badań komputerowych m.in. w dziedzinie medycyny. Z drugiej strony Wojny Rdzeniowe uważane są za protoplastów wirusów komputerowych. Najważniejsze, że ten prosty i genialny pomysł przetrwał do dzisiaj.

Sławomir Wilk

Artykuł opublikowany został w serwisie Dziennik Internautów www.di24.pl.
Komentarze:


PTU2013-12-19 22:47
Proste pomysły są zawsze najlepsze i zasługują na uznanie. I tutaj się to potwierdza.

Dodaj komentarz:

Podpis: (wymagane)
Adres Twojej strony WWW: (opcjonalnie)
Twój adres e-mail: (opcjonalnie)
Treść komentarza:
Antyspam: policz ile
wynosi jeden plus dwa:
(wymagane)