Wersja robocza bez formatu. Zobacz wersję angielską, aby zobaczyć format Przepraszam za niedogodności O:)
FRONTPAGE MOON Pablo Garaizar Steruj komputerem lądownika księżycowego
W roku 1969 miliony ludzi na całej Ziemi zgromadziły się przy telewizorach aby oglądać co się dzieje w odległości 384 000 km od Ziemi. Lądownik księżycowy Eagle przeprowadzał lądowanie na powierzchni Księżyca na podstawie ciągłych obliczeń komputera pokładowego, którego parametry były słabsze niż obecnych zegarków elektronicznych. Jednakże 3 minuty przed lądowaniem komputer zarejestrował kilka alarmów: radar, który powinien być wyłączony podczas procedury lądowania niespodziewanie włączył się. Komputer pokładowy, który skierował całą swoją moc obliczeniową na przeprowadzenie lądowania mógł zostać przeciążony przez dodatkową pracę. Na szczęście oprogramowanie zarządzające komputerem, zaprojektowane przez zespół inżynierów kierowany przez Margaret Hamilton było wystarczająco dobre, aby dać sobie radę z tym problemem. Komputer zaalarmował astronautów skutecznie przekazując komunikat: ""Jestem przeciążony zbyt dużą liczbą zadań do natychmiastowego wykonania, więc skupię się tylko na tych najważniejszych, które wiążą się z lądowaniem"". Bez innowacyjnego i inteligentnego oprogramowania moglibyśmy nigdy nie zrobić tego ""małego kroku dla człowieka i gigantycznego skoku dla ludzkości". Minęło ponad 30 lat zanim NASA doceniła dokonania Margaret Hamilton. Była ona dyrektorem działu inżynierii oprogramowania MIT, którego zadaniem było opracowanie oprogramowania pokładowego dla całego programu Apollo: jedynego oprogramowania, które pozwoliło ludzkości postawić stopę na innym globie. (SETUP picture) karty operacji, A,B,C i D rejestry CPU, moduł RAM, jednostki energii, karty zadań MOON to gra edukacyjna, w której grający będą symulować pracę prostego komputera. Pomóż astronautom modułu księżycowego Eagle wypełnić ich misję, a przy okazji naucz się liczyć w systemie dwójkowym, wykonywać operacje logiczne i dowiedz się, jak działa komputer... jednocześnie dobrze się bawiąc! Gra MOON jest przeznaczona dla nastolatków (od 10 lat), dla od 1 do 4 graczy, a czas trwania rozgrywki to około 15-45 minut (w zależności od wybranego poziomu trudności). PRZYGOTOWANIE GRY 1. Umieść 4 rejestry (A, B, C i D) procesora czyli CPU i odpowiadające im karty z wyłączonymi bitami pośrodku stołu. To będzie plansza centralna.
2. Umieść karty operacji po lewej stronie planszy centralnej. Niech będą one uporządkowane według zużycia energii: najpierw te, które wymagają 2 jednostek energii (INC, DEC), a następnie te, które wymagają 1 jednostki energii (NIE, ROL, ROR, ROL, MOV), i wreszcie te, które wymagają 1/2 jednoski energii (OR, AND, XOR). 3. Przetasuj karty zadań i połóż ich zakrytą talię po prawej stronie centralnej planszy. Te karty reprezentują obliczenia, które astronauci muszą wykonać, aby wylądować na Księżycu. 4. Weź 3 karty energii i połóż je obok siebie. Te karty mogą reprezentować jedną jednostkę energii lub 1/2 jednostki energii. W przypadku pierwszej gry zalecamy wykorzystanie 3 jednostek energii. MOON udaje prawdziwy komputer. Operacje zmieniają dane w taki sam sposób, jak w prawdziwych mikroprocesorach. Przed rozpoczęciem gry przyjrzyjmy się jak wykonywć obliczenia w systemie dwójkowym: OBLICZENIA W SYSTEMIE DWÓJKOWYM Zarówno pojedyncze moduły pamięci RAM, jak i rejestry procesora mają pewną liczbę bitów, które działają jako liczniki zero-jedynkowe. Każda pozycja ma przypisaną liczbę (1, 2, 4 i 8 w rejestrze 4-bitowym). Jeżeli wszystkie bity rejestru są wyłączone, zapisana jest wartość zero. Jeśli są jakieś włączone bity, musisz dodać odpowiadające im liczby umieszczone na górze procesora. Ta suma będzie wartością zapisaną w tym rejestrze. Na przykład układ ten reprezentuje liczbę 3, ponieważ bity w pozycjach 1 i 2 są włączone, więc 1 + 2 = 3. Ten układ reprezentuje liczbę 9, ponieważ bity w pozycjach 1 i 8 są włączone, więc 1 + 8 = 9. Podczas gry będziesz musiał zmodyfikować bity rejestrów CPU, aby osiągnąć cel określony na karcie zadania. Zrobisz to za pomocą jednej lub kilku operacji procesora: INC, DEC, ROL, ROR, MOV, NOT, OR, AND i XOR. INC
Ta operacja jest stosowana w jednym rejestrze i kosztuje 2 jednostki energii. Dodaje 1 do wartości zapisanej w rejestrze. Jeśli rejestr przechowuje wartość maksymalną (wszystkie bity włączone), następuje przepełnienie i rejestr jest resetowany do zera (wszystkie bity wyłączone): DEC Ta operacja jest stosowana w jednym rejestrze i kosztuje 2 jednostki energii. Odejmuje 1 od wartości zapisanej w rejestrze. Jeśli wszystkie bity rejestru są wyłączone, odjęcie 1 spowoduje niedobór i spowoduje ustawienie wszystkich bitów rejestru na jeden (włączony). ROL Ta operacja jest stosowana w jednym rejestrze i kosztuje 1 jednostkę energii. Polega ona na przesunięciu każdego bitu w rejestrze w lewo i umieszczeniu bitu znajdującego się po lewej stronie w skrajnie prawej pozycji. W wielu przypadkach jest to równoznaczne z pomnożeniem wartości rejestru przez 2: ROR Ta operacja jest stosowana w jednym rejestrze i kosztuje 1 jednostkę energii. Polega ona na przesunięciu każdego bitu w rejestrze w prawo i umieszczeniu bitu znajdującego się po prawej stronie w skrajnie lewej pozycji. W wielu przypadkach jest to równoznaczne z dzieleniem wartości rejestru przez 2: MOV Ta operacja jest stosowana w dwóch rejestrach lub rejestrze i module pamięci RAM i kosztuje 1 jednostkę energii (1/2 w trybie rywalizacji). Kopiuje wszystkie bity z jednego rejestru do drugiego, zastępując wartość przechowywaną w miejscu docelowym (przydatne może być skopiowanie wartości do modułu RAM, a następnie przywołanie jej później, aby uniemożliwić innym modyfikację).
NOT Ta operacja jest stosowana w jednym rejestrze i kosztuje 1 jednostkę energii. Negacja każdego bitu w rejestrze: włączone bity zostają wyłączone, a wyłączone bity zostają włączone. Wymaga to odwrócenia wszystkich bitów rejestru. OR Ta operacja jest stosowana w 2 rejestrach i kosztuje 1/2 jednostki energii. Kopiuje ona tylko włączone bity z jednego rejestru do drugiego. Polega na porównaniu każdego bitu jednego rejestru z odpowiadającym mu bitem drugiego (pierwszy bit z pierwszym bitem, drugi z drugim itd.). Jeżeli jeden lub oba bity są włączone, powstały bit jest włączony (w przeciwnym razie wynikowy bit jest wyłączany). Wynik wszystkich porównań jest przechowywany w pierwszym rejestrze (drugi nie jest modyfikowany): AND Ta operacja jest stosowana w 2 rejestrach i kosztuje 1/2 jednostki energii. Kopiuje ona tylko wyłączone bity z jednego rejestru do drugiego. Polega na porównaniu każdego bitu jednego rejestru z odpowiadającym mu bitem drugiego (pierwszy bit z pierwszym bitem, drugi z drugim itd.). Jeżeli oba bity są włączone, wynikowy bit jest włączony (w przeciwnym razie wynikowy bit jest wyłączany). Wynik wszystkich porównań jest przechowywany w pierwszym rejestrze (drugi nie jest modyfikowany): XOR Ta operacja jest stosowana w 2 rejestrach i kosztuje 1/2 jednostki energii. Kopiuje ona tylko włączone bity z jednego rejestru do drugiego, ale jeśli bit był już włączony zostaje on wyłączony. Polega na porównaniu każdego bitu jednego rejestru z odpowiadającym mu bitem drugiego (pierwszy bit z pierwszym bitem, drugi z drugim itd.). Jeżeli oba bity są różne (jeden jest włączony, a drugi wyłączony), powstały bit jest włączony (w przeciwnym razie wynikowy bit jest wyłączany). Wynik wszystkich porównań jest przechowywany w pierwszym rejestrze (drugi nie jest modyfikowany): ARCHITEKTURA KOMPUTERA
Na koniec przyjrzyjmy się kilku ważnym rozwiązaniom wewnętrznej architektury komputera: Aby wykonać swoje zadania, programy dokonują operacji na procesorze (CPU). Po uruchomieniu programu można użyć dowolnego rejestru (A, B, C i D) do wykonywania operacji, ale wynik musi być zapisany w rejestrze A. W grze MOON oznacza to, że każdy gracz może modyfikować dowolny rejestr procesora, ale aby wygrać trzeba umieścić wynik w rejestrze A. System operacyjny przydziela programom czas do działania. Kiedy zabraknie czasu, muszą zwolnić procesor dla innych programów. W grze MOON każdy gracz ma kilka jednostek energii na każdą turę. Mozna ich używać do wykonania operacji, a następnie zwolnić rejestry procesora dla następnego gracza. Ponieważ wszystkie programy współdzielą procesor, częściowe wyniki powinny być przechowywane w pamięci RAM. W przeciwieństwie do tego, co dzieje się z rejestrami procesora, pamięć RAM każdego programu jest chroniona przed innymi programami. W systemie MOON każdy gracz ma indywidualny moduł pamięci RAM, do którego można skopiować dowolne wartości z rejestrów procesora (przy użyciu operacji MOV) przed końcem tury. Potem można skopiować wartość z powrotem do dowolnego rejestru procesora (ponownie używając MOV) podczas następnej tury. GRA W TRYBIE WSPÓŁPRACY Przygotuj grę zgodnie z opisem na stronie 1 tej instrukcji. W pierwszej grze zalecamy użycie 3 jednostek energii na rundę i nieużywanie operacji OR, AND i XOR. Później możesz dostosować poziom trudności gry do swojego poziomu. Na początku gry odwróć pierwsze trzy karty zadań i skopiuj je do rejestrów B, C i D. Po prawidłowym ułożeniu odrzuć te 3 karty zadań. Następnie weź pierwszą kartę ze stosu i połóż ją odkrytą obok stosu. Aby wygrać, musisz pomóc astronautom wypełnić swoją misję, rozwiązując wszystkie karty zadań. Każda karta zadania pokazuje kombinację bitów. Aby wykonać zadanie, musisz zapisać tę kombinację bitów w rejestrze A procesora. W każdej rundzie możesz wykonać dowolną liczbę operacji w zależności od dostępnych jednostek energii (pamiętaj, że istnieją takie operacje, jak OR, które wymagają 1/2 jednostek energii, podczas gdy inne, takie jak INC, wymagają 2 jednostek energii).
Nie musisz zużyć wszystkich jednostek energii w jednej rundzie, ale nie możesz zaoszczędzić energii na następną rundę. Użyj jednostek energii, aby wykonać operacje na rejestrach A, B, C i D procesora i rozwiązać zadanie. Pamiętaj, że zadanie z karty nie zostanie rozwiązane, dopóki jej wartość nie zostanie zapisana w rejestrze A procesora. Niezależnie od tego, czy zadanie zostało rozwiązane, czy nie, na koniec rundy, musisz przenieść nierozwiązane karty zadań do góry o jedną pozycję, weź najwyższą kartę w stosie kart zadań i połóż ją zakrytą obok stosu: Wtedy odzyskasz całą energię, którą miałeś na początku rundy. Jeśli karta zadania znajdzie się na koniec rundy na piątej pozycji, twój procesor okazał się zbyt wolny, gra się kończy, a twoja misja księżycowa nie powiodła się. Może się tak zdarzyć, nawet jeśli na stosie nie ma już kart zadań, ale do rozwiązania zostaje ci więcej niż pięć rund. Innymi słowy, na koniec rundy karty zadań poruszają się w górę, niezależnie od liczby kart pozostałych na stosie. Z drugiej strony, jeśli uda ci się szybko rozwiązać wszystkie zadania ze stosu, astronauci będą mogli bezpiecznie wylądować na Księżycu, a ty wygrasz! Co więcej, istnieją karty zadań, które nie mają kombinacji bitów, ale zawierają informację o błędzie (ERROR). Te specjalne karty nie mogą zostać odrzucone i będą blokować jedną z pozycji listy oczekujących zadań przez resztę gry. POZIOMY TRUDNOŚCI Możesz zmieniać poziom trudności gry na kilka sposobów: 1. Zmieniając liczbę jednostek energii dostępnych w rundzie. Zalecamy użycie 3 jednostek energii (łatwe) w pierwszych grach, a następnie stopniowe jej zmniejszanie (normalne: 2.5, trudne: 2, mistrzowskie: 1.5). 2. Zmieniając liczbę kart "błąd" (ERROR), które będą w stosie kart zadań (łatwe: brak, normalne: 1; trudne: 2, mistrzowskie: 2).
3. Zmieniając początkowy stan rejestrów. Aby uzyskać łatwy poziom, weź na początku gry pierwsze 3 karty zadań i skopiuj ich wartości do rejestrów B, C i D (te trzy karty można następnie uznać za rozwiązane). W przypadku normalnego poziomu trudności, zrób to samo z pierwszymi 2 kartami zadań i rejestrami B i C. W przypadku poziomu trudnego, pierwsza karta zadań zostaje skopiowana do rejestru B. W przypadku poziomu mistrzowskiego, rejestr A ma wartość 1, a pozostałe rejestry są ustawione na 0. 4. Dodając karty zdarzeń do stosu kart zadań. ZDARZENIA Dodaj karty zdarzeń do talii kart celów, aby gry były bardziej interesujące: Karty RESET resetują rejestry (wszystkie bity zostają wyłączone): Karty ERROR rejestru wyłączają rejestr: Karty ERROR instrukcji wyłączają tę instrukcję: Karty OK naprawiają ERROR (błąd) w rejestrze lub instrukcji (nie można ich zatrzymać, aby naprawić przyszłe błędy). GRA W TRYBIE RYWALIZACJI Przed rozpoczęciem gry w trybie rywalizacji dobrze jest najpierw zagrać w trybie współpracy. Przejrzyj poprzednie sekcje, aby poznać podstawy gry. Przygotuj grę zgodnie z opisem na stronie 1 niniejszej instrukcji. Każdy gracz wybiera kolor, bierze kartę pamięci RAM tego koloru i ustawia wszystkie pozycje swojego modułu RAM na zero. Przydziel jednostki energii każdemu graczowi zgodnie z wybranym poziomem trudności: 4 dla gry łatwej, 3 dla normalnej, 2,5 dla trudnej i 2 dla mistrzowskiej. Potasuj karty zadań i połóż je zakryte na prawo od procesora. Każdy gracz bierze kartę zadana z talii, patrzy na nią (nie pokazując jej innym graczom) i kładzie ją zakrytą obok swojego modułu pamięci RAM. W każdej turze każdy gracz może uzyć tyle kart operacji, na ile pozwalają mu jego jednostki energii. Gracz nie musi używać wszystkich swoich jednostek energii. Jednostki energii nie mogą być przenoszone z jednego gracza na drugiego.
Każdy gracz może modyfikować wartości dowolnych bitów w 4 rejestrach CPU, ale nie wolno mu kopiować ani modyfikować wartości przechowywanych w pamięci RAM innych graczy. Jeśli graczowi podczas swojej tury uda się zapisać swoje zadanie w rejestrze A procesora, pokazuje on swoją kartę celu pozostałym graczom, umieszcza ją obok swojego modułu pamięci RAM i bierze kolejną kartę zadania z talii. Po wyczerpaniu talii kart zadań zwycięzcą zostaje gracz, który wygrał najwięcej kart zadań. W trybie rywalizacji są dwie dodatkowe zmiany w stosunku do trybu współpracy: 1. Operacja MOV wymaga 1/2 jednostki energii (zamiast 1 jednostki energii). 2. Karty błędów służą do oglądania karty zadania innego gracza w dowolnym momencie gry. Kiedy gracz bierze tę kartę z talii, pokazuje ją innym graczom i zachowuje ją do późniejszego wykorzystania. Karta błędu może być użyta tylko w trakcie tury gracza, a gracz, który był zmuszony do pokazania swojej karty zadania, przejmuje w posiadanie kartę błędu, którą może wykorzystać podczas następnej rundy. Te karty nie są uznawane za rozwiązane zadanie, decydujące o zwycięstwie pod koniec gry. HAKERY (KARTY HAKERSKIE) Opcjonalnie możesz ustalić, aby każdy gracz miał specjalne uprawnienia w grach w trybie rywalizacji. Spójrz na kartę pamięci RAM, aby zobaczyć, jakim hackerem możesz być: Zielony: możesz użyć INC lub DEC, zużywając tylko jedną jednostkę energii. Żółty: możesz użyć ROL lub ROR, zużywając tylko 1/2 jednostek energii. Fioletowy: możesz wykonać operację MOV bez zużywania energii w każdej turze. Czerwony: możesz wykonać dwie operacje logiczne OR, AND, XOR bez zużywania energii w każdej turze. DODATKOWE BITY
Modułowa konstrukcja MOON pozwala na zwiększenie liczby bitów w CPU, co znacznie zwiększa złożoność gry. Podstawowa gra zawiera 8 dodatkowych kart bitów, które pozwalają rozszerzyć rejestry A, B, C i D do 5 lub 6 bitów. Ponieważ karty zadań zawierają tylko kombinacje 4-bitowe, potrzebujemy dwóch kart zadań, aby wskazać 5-bitowe lub 6-bitowe kombinacje do rozwiązania. W trybie współdziałania, losujemy dwie karty zadań podczas rozwiązywania zadania lub na końcu każdej rundy: Rozwiązujesz zadanie Pokazujesz kolejne zadanie Na koniec rundy kładziesz dwie kolejne karty zadań Zadanie będzie składać się ze wszystkich prawych bitów dwóch kart zadań. Na przykład, podczas gry z rejestrami 6-bitowymi, zadanie będzie składać się z 4 bitów karty po prawej stronie i 2 prawych bitów karty po lewej: W trybie rywalizacji części zadania umieszczasz po obu stronach modułu pamięci RAM, aby uniknąć ich mieszania. Zaledwie kilka minut przed pierwszym krokiem na Księżycu komputer statku jest przeciążony. Kokpit jest pełen czerwonych świateł i dźwięków. Pomóż astronautom bezpiecznie wylądować, używając operacji binarnych i naprawiając błędy sprzętowe! MOON to szybka gra, w której dowiesz się, jak działa prawdziwy komputer. Jej modułowa konstrukcja pozwala dostosować ją do różnych poziomów trudności i grać samodzielnie albo w trybie współdziałania i rywalizacji.
BACKPAGE [ERASMUS+ LOGO] This game was created within the framework of the COMPUS project co-funded by the Erasmus+ Programme of the European Union and developed by the University of Deusto (Spain), AGR Priority (Spain), Fundación Educativa ACI - Esclavas SC-Fatima (Spain), Scoala Gimnaziala Ferndinand I (Romania) and OEIIZK: Osrodek Edukacji Informatycznej i Zastosowan Komputerow w Warszawie (Poland). To learn more about the project, visit http://compus.deusto.es. The European Commission support for the production of this publication does not constitute an endorsement of the contents which reflects the views only of the authors, and the Commission cannot be held responsible for any use which may be made of the information contained therein.