Powrót do scenariuszy
Szkoła podstawowa
Klasa: 7-8
Szkoła ponadpodstawowa
Klasa: 1-4
test
Autor:

Mateusz Chmielewski

Programowanie robota Photon w Pythonie #2 Robotyczne szachy!

informatyka • programowanie
Czas:
45 min.
Roboty:
x2
Akcesoria:
Accessory
Interfejsy:
Python (Photon Magic Bridge)
alt
Powrót do scenariuszy
Scenario Image

Odniesienie do podstawy programowej

Szkoła podstawowa kl. VII-VIII, Informatyka, II./1, 2.
Szkoła ponadpodstawowa, Informatyka II./2., I./2.

Cele zajęć

Uczeń/uczennica:
  • stosuje w praktyce podstawowe metody dotyczące Photona w języku Python
  • uczy się definiować funkcje
  • tworzy algorytmy złożone z sekwencji funkcji

Metody pracy

  • dyskusja
  • gra
  • ćwiczenie

Formy pracy

  • grupowa
  • indywidualna

Materiały

  • szachownica na dwie grupy
  • komputer na grupę
  • linijka / miarka

Załączniki

#2 szachy.py
Pobierz

Przebieg zajęć

Wstęp:

W tym scenariuszu podnosimy poziom zaawansowania programowanych algorytmów. Dzięki definiowaniu funkcji nauczymy się organizować warsztat pracy tak, aby oszczędzić sobie wielokrotnego pisana powtarzalnych części kodu. Zagramy też w grę wymagającą przewidywania, współpracy w zespole i strategicznego myślenia.

Przygotowanie do zajęć

Przed zajęciami przygotowujemy planszę – szachownicę 5x5 pól. Możemy rozrysować ją na dużym arkuszu papieru pakowego lub wykleić kolorową taśmą bezpośrednio na podłodze. Zależnie od liczby dostępnych robotów możemy przygotować dwie plansze, aby umożliwić rozgrywkę większej liczbie drużyn w tym samym czasie.

Przebieg zajęć:

1. Rozmowa o szachach - wprowadzenie do zajęć

  • Zaczynamy zajęcia od pytania, czy ktoś w klasie grał kiedyś w szachy. Pytamy, czy wiedzą jak poruszają się poszczególne figury. Rozmawiamy o tym, jak moglibyśmy najprościej programować ruchy w szachach, stojąc przy szachownicy (np. koń na E3). Zwracamy uwagę, że to ma sens, kiedy możemy sterować ruchami w czasie rzeczywistym, bo bazujemy na własnej wiedzy o ruchu figur. Trudniej, kiedy program sam musiałby rozpoznawać figury i znać zasady ich poruszania się. Prosimy uczniów o samodzielne wyszukanie hasła „Deep Blue”. Czy zawsze musielibyśmy przy ruchu koniem pisać 5 wierszy kodu? Czy można by to uprościć?
  • Dzisiaj rozegramy naszymi robotami turniej „szachowy”, ale musimy się do tego przygotować.

2. Funkcje w Pythonie

  • Podłączamy roboty do Magic Bridge i przechodzimy do Pythona.
  • Będziemy mieli okazję utrwalić podstawowe metody, ale nauczymy się też definiować funkcje. Czasem używamy bardziej złożonych poleceń, albo nawet prostych, ale powtarzamy je bardzo często. Dzięki temu nie będziemy musieli pisać bardzo wiele razy go_forward() tylko definiujemy funkcję raz, a potem piszemy „prosto” albo „prawo”.
    • Po zaimportowaniu biblioteki na górze programu wprowadzamy wszystkie definicje. Używamy do tego metody def nazwa_funkcji(): metody tworzące funkcję zapisujemy w kolejnych wierszach od wcięcia. Wiersz zapisany bez wcięcia będzie oznaczał osobny element programu, poza definicją funkcji.
    • "W tym programie używamy metod z biblioteki photonrobot. Ilekroć padnie polecenie prawo wykonaj metody: obrót w prawo o 90 stopni, przejazd prosto o 30 cm"
    • Przykład zaprezentowany jest na ilustracji na dole scenariusza.
  • Prezentujemy uczniom przygotowaną szachownicę. Mierzymy wspólnie długość boku pola. Każda grupa uczniów definiuje funkcje Przód – tył – prawo – lewo. Zwracamy uwagę, że od nas zależy, czy funkcja „prawo” jedynie obróci robota, czy obróci i przesunie na sąsiednie pole.

3. Robotyczne szachy - rozgrywka

  • Rozgrywamy partię. Roboty zaczynające w przeciwnych narożnikach uczestniczą w strategicznym pojedynku. Drużyny w każdej rundzie programują kod dla swojego robota pozwalający na przejechanie maksymalnie 3 pól i uruchamiają go równocześnie. Wygrywa ta drużyna, której robot jako pierwszy wjedzie na pole, na którym znajduje się robot przeciwnej drużyny.
  • Gra wymaga, aby przewidywać ruchy przeciwnika i ustalać wspólnie strategię swojej drużyny. Drużyny mogą używać innych metod (wszystkie metody omówione są w dokumentacji), o ile nie wpływają one na pokonanie dodatkowych pól. [WSKAZÓWKA: Ustawianie prędkości robota].
  • Zdefiniowane raz funkcje nie włączają się do dokumentacji. Program rozumie je tylko w obrębie tego jednego projektu. Gdybyśmy chcieli użyć ich w przyszłości, trzeba będzie je ponownie zdefiniować. Dlatego warto zapisać utworzone projekty. Dzięki temu w przyszłości będziemy mogli rozbudowywać i nadpisywać ten projekt lub do nowego wkleić zdefiniowane dzisiaj funkcje. Na pasku górnego menu ikony licząc od lewej: pozwala otworzyć przykładowe programy przygotowane przez twórców Photona, otwiera dokumentację wraz ze spisem metod, otwieranie zapisanego na dysku programu, zapisywanie bieżącego programu, zapisywanie kopii bieżącego programu (jeśli przerabiamy stary program i chcemy zachować obie jego wersje).

4. Podsumowanie

  • Podsumowujemy i odpowiadamy na pytania – bardzo możliwe, że wiele odpowiedzi poznamy na jednych z kolejnych zajęć.

Przykład skonstruowania kodu do wykonania zadania - w tym przypadku robot pojedzie do przodu 30 cm, a następnie cofnie się 30 cm.

Współautorem scenariusza jest Michał Nowak.

Ciekawostki/Pytania otwierające

  • Czy szachy to trudna gra? Czy znacie jakiegoś mistrza szachowego?
  • Czy myślicie, że komputer mógłby pokonać mistrza szachowego?
  • Deep Blue to superkomputer stworzony przez IBM, który pokonał w meczu arcymistrza Garija Kasparowa.