• ul. J. Długosza 7, 27-600 Sandomierz
  • (15) 832-52-45

Algorytmy i kody (pr)

Wszystkie informacje o naszej szkole

Tematy i zagadnienia

  1. Język programowania Python.
    • charakterystyka Pythona
    • instalacja interpretera
    • interaktywny interpreter Pythona
    • rozszerzona konsola IPython QtConsole
  2. Obliczenia, operacje wejścia i wyjścia w Pythonie.
    • sumowanie, odejmowanie, mnożenie, dzielenie (całkowite, rzeczywiste) liczb w konsoli
    • pobieranie danych tekstowych i liczbowych
    • wyprowadzanie danych w terminalu
    • formatowanie danych wyjściowych
  3. Od prostych do złożonych struktur danych.
    • zmienne tekstowe i liczbowe
    • listy
    • zbiory
    • słowniki
  4. Klasy i obiekty (1).
    • OOP a programowanie strukturalne
    • definiowanie klas
    • atrybuty (właściwości) i metody klasy
    • tworzenie obiektów (instancji klas)
    • konstruktor klasy
    • referencje do obiektu (self)
  5. Klasy i obiekty (2).
    • przekazywanie parametrów do metod klasy
    • zmienne klasy vs zmienne obiektu
    • odwoływanie się do zmiennych obiektu
    • metody statyczne
    • dziedziczenie
    • nadpisywanie metod
  6. Dynamiczne struktury danych.
    • stos, kolejka, lista, drzewo binarne – omówienie
    • strukturalna implementacja stosu
  7. Stos i lista.
  8. Wykorzystanie stosu.
    • zasady ONP (odwrotnej notacji polskiej)
    • implementacja obliczeń ONP za pomocą listy
    • sprawdzanie poprawności danych pobieranych z terminala
    • wyprowadzanie danych
  9. Operacje na plikach.
    • wczytywanie wyrażeń ONP z pliku tekstowego
    • zapisywanie historii działań w pliku
    • oczyszczanie łańcuchów tekstowych
    • format json
  10. GUI w PyQt – podstawowy kalkulator.
    • okno i główna pętla programu
    • dodawanie i właściwości widżetów
    • etykiety, pola tekstowe, przyciski
    • sygnały i sloty
    • wyprowadzanie wyników w odpowiednich widżetach
  11. Konwersja wyrażeń do ONP.
    • zapisywanie historii działań w pliku
    • algorytm konwersji wyrażeń arytmetycznych do notacji ONP
    • wyświetlanie wyrażeń ONP w GUI
    • zapisywanie wyrażeń ONP w pliku
  12. Od pliku do bazy danych.
    • podstawy systemu ORM SqlAlchemy
    • model bazy do przechowywania historii operacji
  13. Wprowadzenie do biblioteki PyGame.
    • podstawy API
    • właściwości obszaru wyświetlania (display)
    • rysowanie obiektów (draw)
    • właściwości obiektów
    • rysowanie szachownicy – ćwiczenie
  14. Szkielet gry Pong.
    • tworzenie planszy – wersja strukturalna i obiektowa
    • główna pętla programu
    • obsługa zdarzeń – zamknięcie okna
  15. Dodawanie obiektów.
    • klasa bazowa dla obiektów graficznych
    • klasy pochodne reprezentujące piłkę i paletkę
    • rysowanie obiektów na planszy gry
    • rozpoznawanie kolizji obiektów
  16. Interakcja między obiektami.
    • właściwości obiektu typu Rect()
    • wykrywanie wyjścia poza planszę i/lub kolizji
    • odbijanie piłeczki
  17. Tekst i dźwięk.
    • sztuczna inteligencja
    • wyświetlanie punktacji za pomocą tekstu
    • zliczanie i wyświetlanie punktów
  18. Gra w życie – zasady.
    • zasady gry w życie
    • okno gry
    • struktura danych dla populacji
    • listy zagnieżdżone
    • wyrażenia listowe
  19. Klasa dla populacji.
    • definicja klasy reprezentującej populację
    • obsługa zdarzeń: kliknięcie myszą
    • generator żywych komórek
    • rysowanie komórek
  20. Algorytm rozwoju populacji
    • zliczanie sąsiednich komórek
    • przeglądanie macierzy populacji w zagnieżdżonej pętli
    • złożone instrukcje warunkowe zmieniające status komórek
  21. Świat Minecrafta.
    • konstrukcja świata w Minecrafcie
    • środowisko testowe w systemie Raspbian
    • biblioteka mcpi
    • sterowanie postacią Steve’a
    • rodzaje bloków
    • umieszczanie bloków
  22. Gra w życie w Minecrafcie.
    • plansza gry
    • losowa populacja wyjściowa
    • implementacja algorytmu rozwoju populacji
    • budowanie kolejnych stanów populacji
  23. Testowanie struktur Gry w życie.
    • wprowadzanie struktur początkowych przez użytkownika
    • badanie rodzaju bloków
    • wstrzymywanie ewolucji
  24. Zasady i środowisko RobotGame.
    • koncepcja gry
    • wirtualne środowisko Pythona
    • biblioteka rgkit
    • przykładowe roboty
    • symulator
  25. Podstawowa klasa Robot.
    • metoda act()
    • zasada „idź do środka”
    • położenie i właściwości robota
    • słownik game
    • testowanie robota w symulatorze
  26. Metody biblioteki rgkit.
    • toward() – szukanie położenia następnego miejsca
    • dist() – określanie odległości między polami
    • loc_types() – sprawdzanie typu pola
    • locs_around() – pola sąsiadujące
    • debugowanie w konsoli
    • rozpoznawanie i atakowanie wrogów
  27. Działania robota oparte na metodach.
    • opuszczanie pól wejścia
    • atakowanie najbliższych wrogów
    • samobójstwo warunkowe w środku
    • bezpieczne ruchy
    • szukanie wrogów
  28. Działania robota oparte na zbiorach.
    • zbiory pól różnego typu
    • zbiór przyjaciół
    • zbiór wrogów
    • zbiór sąsiednich pól
    • zbiór najbliższych wrogów
  29. Implementacja i testowanie logiki robota.
    • czy atakować więcej niż 1 wroga?
    • czy atakować mocniejszego?
    • współdziałanie robotów
    • kiedy popełnić samobójstwo
    • kolejność implementacji reguł
    • technika zwracania ruchu
  30. Walki robotów.
    • upload robota na serwer
    • rozgrywki robotów
    • ulepszenia

Uwaga: lista zagadnień może ulec zmianom.