Pozwoliłem sobie nagrać piłkę odbijającą się w sześcianie - tak w ramach pochwalenia się. Poniżej - kod przykładu.
Pong 3D - ciąg dalszy zabawy...
Szabel | 18:07 | gra, pong3d, python | 0 komentarze
Pong3D - cz. 1
Szabel | 18:24 | cpp, gra, pong3d, python | 0 komentarze
Razem z Pawłem zabraliśmy się za robienie Ponga3D w trybie multiplayer przez sieć. Moją rolą, jest napisanie serwera, a Pawła - klienta. Ja piszę w Pythonie, a Paweł w C++.
Jakie są ogólne założenia?
- Piłka porusza się wewnątrz sześcianu 201x201x201 punktów.
- Piłka jest traktowana jakby miała punkt na punkt.
- Środkiem układu współrzędnych (punktem (0, 0, 0)) jest środek sześcianu.
- Paletki są na przeciwległych ścianach. Tylko ściany z paletkami nie odbijają piłki.
- Gra kończy się wraz z nie odbiciem paletki przez któregoś gracza (oba klienty się wyłączają).
- Klient i serwer komunikują się wysyłając do siebie liczby całkowite oddzielone znakami nowej linii.
Jak ma wyglądać klient?
Mniej więcej tak.
Jak wygląda na razie kod serwera?
Jak wygląda na razie kod klienta?
Jak złapię Pawła, to go chłopak pokaże. :)
C++ - przykład operacji na plikach
Szabel | 18:07 | cpp, python, snippet | 0 komentarze
Na fakultecie w poprzedni piątek mieliśmy zadanie - napisać program który wczyta znaki z jednego pliku i zapisze je w odwrotnej kolejności przy okazji zamieniając duże litery na małe (i na odwrót).
PS. Jak widać testuję nowy sposób osadzania kodu na blogu. Bonus - wersja w Pythonie.
Python #3 - sekwencje, pętla for
Szabel | 03:42 | python, zadania | 1 komentarze
Otwórzcie IDLE.
Inne języki posiadają konstrukt językowy znany jako tablice - ciągi elementów do których można się odwoływać przy użyciu numeru. Python (o czym wspomniałem już w lekcji #1) posiada wbudowane dwa podobne typy - listy i tuple (krotki) zwane razem sekwencjami.
W Pythonie (tak jak w C++, C, Javie, C#, JavaScriptcie i każdym języku poza Pascalem) numery ich elementów są liczone od zera. Elementy sekwencji w Pythonie nie muszą być wszystkie tego samego typu.
Krotki mają to do siebie, że raz utworzone, nie mogą się zmieniać. Można do zmiennej przypisać nową krotkę, ale nie można zmienić zawartości starej. Ma to swoje wady i zalety - w momencie, gdy sekwencja ma być na stałe zapisana w kodzie programu, lepiej zastosować krotkę (tym bardziej, że jest nieco szybsza od listy).
Z kolei listy mogą się zmieniać (mówimy o nich, że są mutowalne) - można zmieniać ich elementy. Dużo lepiej nadają się do sytuacji, gdy sekwencja zostaje wygenerowana przez program, albo zmienia się w czasie jego działania.
Zarówno listy jak i krotki obsługują też inne sztuczki (listy mają ich więcej, ale o nich kiedy indziej), w tym:
- ujemne indeksy
- sprawdzanie długości
- wycinanie fragmentów
Poza pętlą while, którą już widzieliśmy, w Pythonie istnieje także pętla for - wykonuje ona zawarty w niej kod przypisując po kolei elementy podanej sekwencji do jednej zmiennej.
Zadanie 0
Napiszcie program który wypisze tekst piosenki 99 Bottles of Beer.Zadanie 1
Napiszcie program FizzBuzz (program ma wypisywać liczby od 1 do 100, podzielne przez 3 zastępować słowem "Fizz", podzielne przez 5 słowem "Buzz", a podzielne przez obie słowem "FizzBuzz".
Python #2 - wyrażenia logiczne, instrukcja if, pętla while
Szabel | 02:43 | python, zadania | 0 komentarze
Otwórzcie IDLE.
Typ logiczny w Pythonie nazywa się bool, a jego wartości to True i False. Wartości tego typu mają m. in. wyrażenia oparte na operatorach porównania.
Ponadto, wyrażenia można łączyć odpowiednikami kwantyfikatorów znanych z logiki - operatory logiczne (and, or i not) budując z nich wyrażenia bardziej skomplikowane.
Aby w zależności od jakiegoś warunku wykonać (lub nie) fragment kodu należy zastosować instrukcję warunkową if.
Jeśli wybór jest bardziej skomplikowany możemy się posiłkować konstrukcją if, else lub if, elif, else.
Czasem pojawia się potrzeba wykonywania kilku czynności wiele razy, dopóki pewien warunek jest prawdziwy. Wtedy stosujemy instrukcję pętli while. Działa ona w ten sposób, że podany warunek sprawdzany jest przed wykonaniem kodu znajdującego się wewnątrz pętli, a kod ten wykonuje się tylko jeśli warunek jest prawdziwy. Po wykonaniu kodu warunek sprawdzany jest ponownie i tak w kółko, aż do momentu gdy warunek okaże się fałszywy i program przejdzie dalej.
Na koniec parę zadań do poćwiczenia:
Zadanie 0
Napisz program sprawdzający czy liczba jest pierwsza (25 % 6 - reszta z dzielenia całkowitego 25 przez 6).Zadanie 1
Napisz program wypisujący kilka pierwszych liczb Fibbonaciego.