Bajtek 1/1989
Bajtek 1/1989

I kolejny numer Bajtka został zreduksowany - tym razem pod nóż poszedł pierwszy numer z 1989 roku. Numer jak numer, oprócz w miarę fajnej okładki w środku dojrzewa nie tylko nowy layout ale przede wszystkim nowe podejście do rzeczywistości - ...

Zobacz stronę związaną z tym artykułem w Reduksach Try2emu
Spis treści:
Listingi dołączone do numeru w ReadyRun

TYLKO DLA PRZEDSZKOLAKÓW

Roman Poznański

Na Szachownicy

Cześć Maluchy!

Nasza szachownica ma nieco nietypowy kształt. Składa się z jedenastu pól ustawionych w jednym rzędzie. Rozpoczynając od jednego końca kładziemy na kolejnych polach pięć pionów w kolorze białym. Od drugiego końca kładziemy natomiast pięć pionów czarnych (rysunek 1). Pośrodku pozostaje jedno pole wolne. Zadaniem grającego jest umieszczenie białych pionów na miejscach czarnych i odwrotnie. Piony białe poruszają się wyłącznie w prawo, piony czarne — w lewo. Każdy z pionów można przesunąć na sąsiednie wolne pole, lub też — jeśli znajduje się na nim pion innego koloru — na wolne pole znajdujące się bezpośrednio za tym pionem. W jakiej kolejności należy przesuwać piony i ile trzeba wykonać ruchów?

Spróbujmy przełożyć zasady tego zadania na język komputera. Rolę szachownicy w naszym programie będzie pełniła tablica pole (10). Posiada ona — podobnie jak nasza szachownica — 11 pól o numerach: 0, 1, 2, 3,... 10. Wartości wprowadzone do odpowiednich elementów tablicy symbolizują piony. I tak, wartość 1 oznacza pion biały, -1 — pion czarny, -0 — puste pole. Dodatkowo wprowadzamy jeszcze jedną, identyczną szachownicę koniec (10). W niej zostanie zapisane docelowe ustawienie pionów. W pierwszym fragmencie programu (linie 10-70) znajdują się deklaracje opisanych tablic i następuje wypełnienie ich odpowiednimi wartościami zapisanymi w linii danych (linia 70). Tablica pole (10) zawiera sytuację początkową, natomiast koniec (10) — końcową.

Główna pętla naszego programu (linie 100-140) składa się wyłącznie ze skoków do podprogramów. Taka konstrukcja często bardzo ułatwia zachowanie przejrzystości i czytelności programu, gdyż umożliwia łatwe analizowanie każdego z podprogramów osobno. Pierwszy ze skoków skierowany jest do podprogramu rysunek planszy (linie 1000-1100), który sprawdza kolejno zawartość poszczególnych elementów tablicy pole (10) i rysuje szachownicę, wypełniając ją odpowiednio znakami O symbolizującymi piony białe lub * symbolizującymi piony czarne (rysunek 2). Drugim z wykonywanych podprogramów jest koniec gry? (linie 2000-2050), czyli sprawdzenie czy przypadkiem sytuacja na szachownicy nie jest już taka, jaką chcieliśmy osiągnąć. W tym celu porównywane są zawartości odpowiednich elementów tablic pole (10) i koniec (10).

Jeśli zawartość obu tablic jest identyczna następują gratulacje i koniec gry.

Kolejny podprogram, to wybór ruchu (linie 3000 - 3070). Decyzja grającego wprowadzana jest do komputera przy użyciu instrukcji INPUT. Następnie — w zależności od wybranego ruchu — zmienna pion otrzymuje wartość 1 (jeśli wybrano białe) lub -1 (czarne).

Najważniejszym i równocześnie najbardziej złożonym podprogramem jest ruch (linie 4000-4170). Wymaga on też nieco dokładniejszego omówienia. Pierwsze linie (4000-4020) to sprawdzenie, które z pól szachownicy pozostaje puste. Numer tego pola przypisany zostaje wartości i. W następnej kolejności sprawdzane jest, czy można przesunąć pion na wolne pole z pola sąsiedniego (linie 4030 i 4040) lub przeskakuje przez inny pion (linie 4050 i 4060).

Ciekawe, że w tym podprogramie znajdują się dalsze podprogramy. Jeśli ruch jest niemożliwy, następuje skok do „podprogramu” drukującego na ekranie komunikat Ruch niemożliwy!!! (linie 4070 i 4090). „Podpodprogramy” w liniach 4100-4130 i 4140-4170 przestawiają wartości w tablicy pole (10) w przypadku ruchu — odpowiednio — na sąsiednie pole lub z przeskokiem.

Analizując kolejne instrukcje warunkowe — możecie to potraktować jako zadanie domowe — dojdziecie może do wniosku, że wartości 1, -1 i 0 symbolizujące sytuację poszczególnych pól szachownicy nie zostały wybrane przypadkowo. Spróbujcie odpowiedzieć sobie dlaczego. Spróbujcie także zastanowić się nad samą grą. Na przykład, czy można wykorzystać w niej dłuższą szachownicę i więcej pionów, oraz jak wpłynie to na strategię gry.

 

Roman Poznański

Czytaj także w dziale TYLKO DLA PRZEDSZKOLAKÓW
„Kubuś Literka”
Roman 'Romek' Poznański - Bajtek 1/1986

Cześć Maluchy Proponuję Wam zabawę w pisanie gry komputerowej. Zaczniemy od najważniejszej rzeczy, czyli zaprogramowanie bohatera Kubusia Literki. Potem nauczymy go tańczyć.

„Pociąg”
Roman Poznański - Bajtek 1/1988

Cześć Maluchy! Stoi na stacji lokomotywa... a za nią wagony towarowe, które trzeba załadować czekającymi w magazynach skrzyniami. Maszynista, Kubuś Literka siedzi w parowozie i czeka, aż wszystkie wagony zostaną zapełnione..

„Skarb Kubusia”
Roman Poznański - Bajtek 7/1986

Cześć Maluchy! Nasz stary przyjaciel Kubuś Literka wybrał się tym razem na poszukiwanie skarbów. Stoi przed nim bardzo trudne zadanie. Skarb został ukryty w jednej z komnat zamku a jest ich dokładnie sto. Żeby było jeszcze trudniej Kubuś nie może wziąć skarbu nim nie zbierze trzech fantów ukrytych w innych komnatach. Trzymaj się Kubusiu!

„Choinka”
Marek - Bajtek 4/1985

Wiemy już, z poprzedniego numeru BAJTKA, na jakiej zasadzie można uzyskać ruch wybranego przez nas znaku na ekranie telewizora. Przypomnę, że polega to na tak szybkiej, że niewidocznej dla oka, zmianie miejsca wydruku owego znaku. Jak pamiętacie, miejsce znaku literowego czy graficznego na ekranie opisane jest dwiema współrzędnymi: numer linii i numer kolumny. (Mówimy ciągle o działaniach na znakach - typu liter, przy grafice używającej punktów sprawy będą się miały nieco inaczej, chociaż zasada jest taka sama).

„Na Szachownicy”
Roman Poznański - Bajtek 1/1989

Cześć Maluchy! Nasza szachownica ma nieco nietypowy kształt. Składa się z jedenastu pól ustawionych w jednym rzędzie. Rozpoczynając od jednego końca kładziemy na kolejnych polach pięć pionów w kolorze białym. Od drugiego końca kładziemy natomiast pięć pionów czarnych (rysunek 1). Pośrodku pozostaje jedno pole wolne. Zadaniem grającego jest umieszczenie białych pionów na miejscach czarnych i odwrotnie. Piony białe poruszają się wyłącznie w prawo, piony czarne — w lewo. Każdy z pionów można przesunąć na sąsiednie wolne pole, lub też — jeśli znajduje się na nim pion innego koloru — na wolne pole znajdujące się bezpośrednio za tym pionem. W jakiej kolejności należy przesuwać piony i ile trzeba wykonać ruchów?