Aktywne Wpisy

mirko_anonim +44
✨️ Obserwuj #mirkoanonim
Różowy pasek kręci mi dym, że dostała za mały bukiet ode mnie z okazji obrony (9 długich róż), bo napatrzyła się na psiapsi która dwa dni wcześniej dostała taki wypasiony ogromny bukiet od swojego oskarka. Mi jakoś przykro, bo chciałem jej sprawić przyjemność, a okazało się, że rozmiar jednak ma znaczenie
#logikarozowychpaskow #zwiazki #logikaniebieskichpaskow
〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰
Różowy pasek kręci mi dym, że dostała za mały bukiet ode mnie z okazji obrony (9 długich róż), bo napatrzyła się na psiapsi która dwa dni wcześniej dostała taki wypasiony ogromny bukiet od swojego oskarka. Mi jakoś przykro, bo chciałem jej sprawić przyjemność, a okazało się, że rozmiar jednak ma znaczenie
#logikarozowychpaskow #zwiazki #logikaniebieskichpaskow
〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰

PociskV2 0
To był absolutny peak w temacie idealnego wnętrza dla daily. Nie powstało i nie powstanie nic lepszego.
#samochody #motoryzacja #bmw #bmwboners
#samochody #motoryzacja #bmw #bmwboners
źródło: P90190521_highRes_bmw-e90-07-2015
Pobierz




Chciałem wszystko utrzymać w terminalu bez używania bibliotek typu pygame oraz tkinter, czy tam curses - o dziwo udało się. Jestem zadowolony z tego mini-projektu, bo:
1. Nie musiałem korzystać ani razu z stackoverflow
2. Przeszedłem samemu przez całą logikę takiej prostej gierki bez wzorowania się na implementacjach innych osób
3. Wydaje mi się że wyszło całkiem w porządku (。◕‿‿◕。)
Kod na pewno nie jest idealny, bo nadal w sumie #naukaprogramowania, ale mimo wszystko wydaje się zgrabny i czytelny. Może doradzicie co można poprawić i jak oceniacie: https://pastebin.com/eTjh1Hur
Nie podoba mi się trochę metoda move(), ale jak coś wymyślę to poprawię.
Testowałem tylko w terminalu linuxowym na roocie(minus keyboard), więc nie wiem jak się zachowa na windowsie
Todo: Unit testy, rozbicie na mniejsze pliki, menu oraz system żyć. Przeniesienie na pygame
#programowanie
źródło: comment_1587581850bcuSIRZxMl79d8IguyR84Z.jpg
PobierzBoard.create_board()można napisać przy pomocy list comprehensionsreturn [["□" for _ in range(self.WIDTH)] for _ in range(self.HEIGHT)]albo jeszcze krócej przy pomocy *
return [["□"] * self.WIDTH] * self.HEIGHTZ tą drugą metodą należy uważać, bo działa trochę nieintuicyjnie, ale list comprehensions warto znać.
collections.deque, lepiej sobie radzi z operacjami na obu końcach niż zwykła lista.create_boardjest wywoływane tylko podczas tworzenia obiektu, można z tego zrobić funkcję "prywatną" i wywoływać ją wewnątrz inita.I tak dla porządku dodałbym przekazywanie obiektów
snakeiboarddo funkcjistart_game, bo czytając pojawia się małe wtf skąd one się tam wzięły.A, i w funkcji
collisionif jest@HefiDL: Mam repo na gicie, ale jest tam taki syf że nie chciałem póki co tutaj linkować xD
@ProfesorBigos: Faktycznie, zapomniałem o list comprehensions. Miałem w planach to przepisać w taki sposób jak podałeś, bo potrafię tego używać, ale
@ProfesorBigos: oj miras, a spróbuj teraz zmienić jakiś element tak utworzonej listy i zobacz co się stanie ( ͡° ͜ʖ ͡°)
Życzę powodzenia oraz proponuję jako next step coś z fizyką.
Dzięki ( ͡° ͜ʖ ͡°) Mam planach coś w stylu ponga, ale może z użyciem curses, coby jak najwięcej rzeczy napisać z palca zanim zacznę sobie ułatwiać bardziej współczesnymi rozwiązaniami.
Razem z mirkami wyżej wymieniliście dużo rzeczy o których po prostu nie pomyślałem podczas wrzucania tu kodu, dzięki ( ͡~ ͜ʖ ͡°)