Zadania domowe: Zadanie X1: Zaimplementować grę w życie o planszy NxN (zadajemy po prostu zmienną na początku kodu). Można używać (nieobowiązkowo) numpy. Wizualizacja - w konsoli X - zajęta klatka, O - pusta. Zakładami, że poza granicami planszy zawsze jest pusto. Startowa plansza ma być losowo wypełniona. https://pl.wikipedia.org/wiki/Gra_w_%C5%BCycie#Opis_regu.C5.82_gry Zadanie X2 Rozszeżyć napisany wcześniej program. Niech teraz on przyjmuje parametry: python3 zycie.py 10 plansza_początkowa.pgm plansza_końcowa.pgm gdzie 10 - to ilość kroków symulacji pomiędzy planszą początkową a końcową. Plansza_początkowa - plansza zdefiniowana w formacie .pgm (z którym już mieliście stycznośc) plansza_końcowa - wynik 10 kroków symulacji gry w życie. Dodatkowo jeżeli wywołamy program w taki sposób: python3 zycie.py 10 plansza_końcowa.pgm To zainincjuje się pole planszy 100x100 z losowym stanem początkowym, wykona się 10 kroków symulacji i zapisze się do plansza_końcowa.pgm UWAGA: w PGM zakładamy że czarne pixle to komórka zajęta, a białe pixle to komórka pusta. Zadanie X3 Napisać program który wczyta plik tekstowy w formie: Maria Konopnikca 5552225 Ala Bohda 5552155 Jerzy Kiery 32325986 Który jest książką telefoniczną. Na zapytanie użytkownika (zapytać o działanie w input) ma potrafić wydrukować wpisy posortowane po imieniu lub po nazwiskach. Dodatkowa akcja: wyszukiwanie w imionach i nazwiskach - użytkownik wpisuje część imienia lub nazwiska i drukujemy mu na ekran tylko te wpisy, które zawierają w sobie to co napisał użytkownik (niezależnie dużymi czy małymi literami) Bonus mode: wyszukiwanie potrafi ignorować polskie znaki (np wpis "Łukasz Kac 546464" wypisze się przy wyszukiwaniu słowa "Lukasz" Zadanie X4 Napisać generator haseł: ma mieć 2 tryby - prosty do zapamiętania lub trudny. Prosty ma generować pseudosłowa - pewne ciągi samogłosek - spółgłosek, które się da wymówić, długości 7-10 znaków (losowe). Trudny ma generować zupełnie losowe hasła używając liter, cyfr i znaków interpunkcyjnych Zadanie X5 Napisać grę - kółko i krzyżyk dla dwóch graczy. Pole ma być wizualizowane w następny sposób: | | 1 | 2 | 3 | | ---+---+--- | | 4 | 5 | O | | ---+---+--- | | 7 | X | 9 | | Gra gracz 1 (kółko), proszę wpisać numer pola: >>> Gra ma po kolei pytać kolejnego gracza o ruch i sama wykrywać warunek wygrania. Zadanie X6 Dane do skopiowania do swojego programu: napis = '██╗ ██╗███████╗███████╗ ██████╗ ██╗ ██╗ ██╗ ██████╗██╗ ██╗ ███████╗██╗ ██╗██╗ █████╗ ████████╗\n██║ ██║██╔════╝██╔════╝██╔═══██╗██║ ╚██╗ ██╔╝██╔════╝██║ ██║ ██╔════╝██║ ██║██║██╔══██╗╚══██╔══╝\n██║ █╗ ██║█████╗ ███████╗██║ ██║██║ ╚████╔╝ ██║ ███████║ ███████╗██║ █╗ ██║██║███████║ ██║ \n██║███╗██║██╔══╝ ╚════██║██║ ██║██║ ╚██╔╝ ██║ ██╔══██║ ╚════██║██║███╗██║██║██╔══██║ ██║ \n╚███╔███╔╝███████╗███████║╚██████╔╝███████╗██║ ╚██████╗██║ ██║ ███████║╚███╔███╔╝██║██║ ██║ ██║ \n ╚══╝╚══╝ ╚══════╝╚══════╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝╚═╝ ╚═╝ ╚══════╝ ╚══╝╚══╝ ╚═╝╚═╝ ╚═╝ ╚═╝ \n ' Używając numpy wygenerować animację falowania tego napisu (to jest napis który da się przechować w macierzy, jeśli poprawnie się go rozdzieli). Podobnie jak faluje logo OCEAN tutaj: https://youtu.be/Q8UJQB-bNaU?t=7 tylko w pionie a nie poziomie. Animować można drukująć pewną ilość nowych linii, następnie nasz pewien napis, następnie robić time.sleep(1/60) i drukować nowy napis. Wskazówki: numpy.roll - przesuwa macierz w osiach o ilość elementów Można wygenerować przesuwającą się sinusoidę - która będzie wskazywała o ile należy przesunąć daną kolumnę. Warto napisać program, który według pewnej listy/macierzy przesunięć kolumn, weźmie kopię macierz i przesunie kolejne jej kolumny do góry lub dołu o zadaną ilość wierszy. Rekomenduję podany napis zachować w macierzy kilkukrotnie wyższej niż sam napis - by miał gdize falować Zadanie X7 Wczytać plik 'EKG.txt', w nim jest zapis elektrokardiogramu. Każdy punkt to poziom sygnału w mikrowoltach, mierzone co 10 ms. (100 razy na sekundę). Napisać program (najlepiej z logicznym podziałem na funkcje) rozpoznający pojedyncze uderzenie serca i mierzący tętno (Ilość uderzeń na minutę) hint: import pylab as pb pb.figure() pb.plot(listaliczb) pb.figure() pb.plot(drugalistaliczb) pb.show() hint2: Piki tętna są rozpoznawalne w/g amplitudy - wystarczy zliczyć ile razy sygnał przekroczył jakąś wartość - najlepiej ją dobrać automatycznie.