I. Understanding, analyzing and solving problems. The student:
2) formulates and writes in the form of algorithms commands consisting of:
c) controlling the robot or object on the screen;
3) distinguishes basic steps in algorithmic problem solving: determination of the problem and goal to be achieved, analysis of the problem situation, developing a solution, checking the problem solution for example data, writing the solution in the form of a diagram or program.
II. Programming and solving problems with the use of computer and other digital devices. The student:
1) designs, creates and writes in a visual programming language:
a) ideas of stories and solutions to problems, including simple algorithms using sequential, conditional and iterative commands and events, b) a simple program that controls a robot or other object on the computer screen;
Certainly you know computer games, in which the protagonistprotagonistprotagonist walks around the mazemazemaze and collects various items or avoids contact with them. Your task is to create a simple version of such a game.
Think about who may be the protagonist of your game, how the board should look, how characters should move, what rules will apply to it.
Before you start to implement the scenario of your game, do the following exercises. These exercises show what solutions you can use in your game.
The sprite touches other objects:
Task 1
Build a script in which the sprite‑cat meets on his way an apple, and after touching it, he says something and then goes backwards.
Use the block touching ... colour from the Sensing category and the conditional expression if ... then from the Control category.
Tip: To change the colour in the block touching ... colour, click the left mouse button on the colour box in the block. After clicking, the mouse pointer will change its appearance. Move the pointer to another object on the screen in the colour you need. When you click again on this object, the colour box in the block will change colour accordingly.
Solution:
One of the possible solutions:
[Illustration 1]
Controlling the sprite movement:
Task 2
You want the directiondirectiondirection of the sprite movement to be changed using the arrows.
Build a script in which pressing the arrow will cause the sprite to turn in the desired direction.
Solution:
One of the possible solutions - pressing the spacebar causes the movement of the sprite. When we press the arrow, the sprite will change its direction of movement. Check, which way it goes, by pressing the space again.
[Illustration 2]
Game board:
To create a game boardboardboard containing a maze, you can create it from scratch in any graphic editor (remember that the Scratch scene is 480 points wide and 360 points high). You can also modify one of the backdrops from the program library called xy‑grid‑30px or use the following board.
[Download]
[Illustration 3]
Mouse in the maze:
You already have a board ready. Now it's time to place sprites on it.
Task 3
Place two sprites on the board. Adjust their sizes to fit entirely in a single maze field. Choose the coordinates of the position of the sprites so that after the green flag lights up they are always in the same place.
Tip:
Use the block set size to ... % from the Look category.
Task 4
Choose the number of steps of one of the sprites, so that after pressing the space it would go entirely to the next field, and pressing the arrow would change the directiondirectiondirection of its movement. The second sprite remains still all the time.
If the sprite touches the field beyond the maze path, it should go back to the previous position.
Tip:
Use the solution for the command from the beginning of the lesson.
Solution:
One of the possible solutions:
[Illustration 4]
Introducing action to the game:
Your sprite can move around the mazemazemaze. Think about what should happen to the sprites in the moment they meet.
Remember to save individual stages of your game under various names, e.g. Maze_version1. This way it will be easier for you to make changes or go back to successful solutions.
Task 5
Modify the previous script so that the sprite wandering around the maze „eats” the second sprite.
In the Data category, create a new Lives variablevariablevariable. Look what new blocks appeared. Consider how to modify your codecodecode so that the sprite will lose one life after accidentally touching the wall of the mazemazemaze. When the number of lives is exhausted, the game ends.
Tip: If you are not sure how to apply the newly created variable in the codecodecode, look at the following slideshow.
Żadna gra nie może się obejść bez licznika punktów lub żyć. Aby dodać liczniki do gry, należy w kategorii Dane utworzyć nową zmienną. Tę zmienną używamy później do liczenia zdobytych punktów lub straconych żyć naszego bohatera gry. Po utworzeniu zmiennej automatycznie pojawiają się nowe bloczki, które używamy do budowania skryptów.
Gdy wędrujący duszek spotyka drugiego duszka, nadaje do niego wiadomość. Drugi duszek po otrzymaniu wiadomości wykonuje zadane polecenie. Potrzebne bloczki znajdziesz w kategorii Zdarzenia.
m77c18d88c8577793_1528449000663_0
Mysz w labiryncie
m77c18d88c8577793_1528449084556_0
Drugi
m77c18d88c8577793_1528449076687_0
Klasy IV‑VI
I. Rozumienie, analizowanie i rozwiązywanie problemów. Uczeń:
2) formułuje i zapisuje w postaci algorytmów polecenia składające się na:
c) sterowanie robotem lub obiektem na ekranie;
3) w algorytmicznym rozwiązywaniu problemu wyróżnia podstawowe kroki: określenie problemu i celu do osiągnięcia, analiza sytuacji problemowej, opracowanie rozwiązania, sprawdzenie rozwiązania problemu dla przykładowych danych, zapisanie rozwiązania w postaci schematu lub programu.
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. Uczeń:
1) projektuje, tworzy i zapisuje w wizualnym języku programowania:
a) pomysły historyjek i rozwiązania problemów, w tym proste algorytmy z wykorzystaniem poleceń sekwencyjnych, warunkowych i iteracyjnych oraz zdarzeń, b) prosty program sterujący robotem lub innym obiektem na ekranie komputera;
m77c18d88c8577793_1528449068082_0
45 minut
m77c18d88c8577793_1528449523725_0
Tworzy prostą grę planszową.
m77c18d88c8577793_1528449552113_0
1. Stosuje polecenia iteracyjne.
2. Stosuje polecenia warunkowe.
3. Tworzy nowe zmienne.
m77c18d88c8577793_1528450430307_0
Uczeń:
- projektuje i tworzy prostą grę planszową,
- stosuje polecenia iteracyjne, warunkowe oraz tworzy nowe zmienne.
m77c18d88c8577793_1528449534267_0
1. Dyskusja.
2. Praca z komputerem.
m77c18d88c8577793_1528449514617_0
1. Praca indywidualna.
2. Praca grupowa.
m77c18d88c8577793_1528450135461_0
m77c18d88c8577793_1528450127855_0
Z pewnością znasz gry komputerowe, polegające na tym, że bohater chodzi po labiryncie i zbiera różne przedmioty lub unika kontaktu z nimi. Twoje zadanie polega na stworzeniu prostej wersji takiej gry.
Zastanów się, kto może być bohaterem Twojej gry, jak ma wyglądać plansza, w jaki sposób mają poruszać się postacie, jakie reguły będą w niej obowiązywać.
m77c18d88c8577793_1528446435040_0
Nim przystąpisz do realizacji scenariusza swojej gry wykonaj poniższe ćwiczenia. Ćwiczenia te pokazują, jakie rozwiązania możesz wykorzystać w swojej grze.
Duszek dotyka inne obiekty:
Polecenie 1
Zbuduj skrypt, w którym duszek‑kot spotyka na swojej drodze jabłko, a po jego dotknięciu wypowiada dowolną kwestię, a następnie się cofa.
Użyj w tym celu bloczka dotyka ... koloru z kategorii Czujniki oraz wyrażenia warunkowego jeżeli ... to z kategorii Kontrola.
Wskazówka: Aby zmienić kolor w bloczku dotyka ... koloru należy kliknąć lewym przyciskiem myszy w znajdujące się na nim pole z kolorem. Po kliknięciu kursor zmieni swój wygląd. Kursor należy przesunąć na inny obiekt na ekranie, w kolorze, którego potrzebujemy. Po ponownym kliknięciu w ten obiekt w polu bloczka zmieni się kolor.
Rozwiązanie:
Jedno z możliwych rozwiązań:
[Ilustracja 1]
Sterowanie ruchem duszka:
Polecenie 2
Chcesz, aby kierunek ruchu duszka można było zmieniać za pomocą strzałek.
Zbuduj skrypt, w którym naciśnięcie strzałki spowoduje, że duszek obróci się w żądanym kierunku.
Rozwiązanie:
Jedno z możliwych rozwiązań – naciśnięcie spacji powoduje ruch duszka. Gdy naciśniemy strzałkę, duszek zmieni swój kierunek ruchu. W którą stronę się uda, sprawdzisz naciskając ponownie spację.
[Ilustracja 2]
Plansza do gry:
Aby stworzyć planszę do gry zawierającą labirynt, możesz stworzyć ją od podstaw w dowolnym edytorze graficznym (pamiętaj, że scena w programie Scratch jest szeroka na 480 punktów i wysoka na 360 punktów). Możesz w tym celu również zmodyfikować jedno z teł z biblioteki programu o nazwie xy‑grid‑30px lub wykorzystać poniższą planszę.
[Plik]
[Ilsutracja 3]
Myszka w labiryncie:
Masz już gotową planszę. Teraz czas ustawić na niej duszki.
Polecenie 3
Na planszy ustaw dwa duszki. Dostosuj ich rozmiary tak, by mieściły się w całości w pojedynczym polu labiryntu. Dobierz współrzędne położenia duszków tak, by po zapaleniu się zielonej flagi zawsze znajdowały się w tym samym miejscu.
Wskazówka:
Wykorzystaj bloczek ustaw rozmiar na ... % z kategorii Wygląd.
Polecenie 4
Dobierz ilość kroków jednego z duszków tak, by po naciśnięciu spacji przechodził w całości na kolejne pole, a naciśnięcie strzałki powodowało zmianę kierunku jego ruchu. Drugi duszek zostaje cały czas nieruchomy.
Jeśli duszek dotknie pola poza ścieżką labiryntu, powinien cofnąć się do poprzedniej pozycji.
Wskazówka:
Wykorzystaj rozwiązanie polecenia z początku lekcji.
Rozwiązanie:
Jedno z możliwych rozwiązań:
[Ilustracja 4]
Wprowadzenie akcji do gry:
Twój duszek potrafi poruszać się już po labiryncie. Zastanów się, co powinno się stać z duszkami w momencie, gdy się spotykają.
Pamiętaj, aby poszczególne etapy swojej gry zapisywać pod różnymi nazwami, np. Labirynt_wersja1 . W ten sposób łatwiej będzie Ci wprowadzać zmiany lub wracać do udanych rozwiązań.
Polecenie 5
Zmodyfikuj poprzedni skrypt tak, aby duszek wędrujący po labiryncie „zjadał” drugiego duszka.
Wskazówka:
Gdy wędrujący duszek spotyka drugiego duszka, nadaje do niego wiadomość. Drugi duszek po otrzymaniu wiadomości wykonuje zadane polecenie. Potrzebne bloczki znajdziesz w kategorii Zdarzenia.
Rozwiązanie:
Duszek pierwszy wysyła wiadomość po napotkaniu drugiego duszka:
[Ilustracja 5]
Duszek drugi odbiera wiadomość i wykonuje polecenie:
[Ilustracja 6]
Licznik żyć:
Żadna gra nie może się obejść bez licznika punktów lub żyć. Aby dodać liczniki do gry, należy w kategorii Dane utworzyć nową zmienną. Tę zmienną używamy później do liczenia zdobytych punktów lub straconych żyć naszego bohatera gry. Po utworzeniu zmiennej automatycznie pojawiają się nowe bloczki, które używamy do budowania skryptów.
Polecenie 6
W kategorii Dane utwórz nową zmienną Życie. Przyglądnij się, jakie nowe bloczki się pojawiły. Zastanów się, jak zmodyfikować Twój kod, aby duszek po przypadkowym dotknięciu ściany labiryntu tracił jedno życie. Po wyczerpaniu liczby żyć, gra ma się skończyć.
Wskazówka: Jeśli nie jesteś pewien, jak można zastosować nowo utworzoną zmienną w kodzie, obejrzyj poniższy pokaz slajdów.
[Slideshow]
m77c18d88c8577793_1528450119332_0
W programie Scratch możesz definiować nowe zmienne. Duszki mogą wzajemnie przekazywać sobie informacje.