Rozdział 9: Budujemy Nyan Cata! — Część 1: Kot na ekranie 🐱
Zaczynamy budować grę! Od tego momentu każdy rozdział dodaje nowy element.
Przygotowanie
cd ~/projekty/nyan-cat-runner
source venv/bin/activate
Otwieramy nasz plik gry
nano src/nyan_cat.py
Skasuj wszystko co tam jest (Ctrl+K kasuje linie, powtarzaj aż plik będzie pusty) i wpisz ten kod:
#!/usr/bin/env python3
"""
NYAN CAT RUNNER
Gra terminalowa - biegający kot zbiera gwiazdki!
"""
import curses
import time
def main(stdscr):
# Ukryj kursor
curses.curs_set(0)
# Pobierz rozmiar terminala
height, width = stdscr.getmaxyx()
# Pozycja kota (zaczynamy w lewej części ekranu, na "podłodze")
cat_x = 5
cat_y = height - 6 # 6 linii od dołu (bo kot ma kilka linii + podłoga)
# Rysuj kota!
cat_frames = [
" /\\_/\\ ~~~~~",
" ( o.o ) ~~~~",
" > ^ < ~~~~~",
" /| |\\ ~~~~~",
"(_| |_) ~~~~",
]
# Wyczyść ekran
stdscr.clear()
# Rysuj podłogę
floor_y = height - 2
stdscr.addstr(floor_y, 0, "=" * (width - 1))
# Rysuj kota
for i, line in enumerate(cat_frames):
stdscr.addstr(cat_y + i, cat_x, line)
# Tytuł
title = "=== NYAN CAT RUNNER ==="
stdscr.addstr(0, (width - len(title)) // 2, title)
stdscr.addstr(1, (width - 30) // 2, "Naciśnij dowolny klawisz...")
# Odśwież ekran i czekaj na klawisz
stdscr.refresh()
stdscr.getch()
# Uruchom grę
curses.wrapper(main)
Zapisz (Ctrl+O, Enter, Ctrl+X).
Co tu się dzieje? Wyjaśnienie!
import curses— ładujemy bibliotekęcurses, która pozwala rysować w terminalu. To taki mini-silnik graficzny dla terminala!curses.wrapper(main)— bezpiecznie uruchamia naszą grę. Jeśli coś pójdzie nie tak, terminal wróci do normalnego stanu.stdscr— to “standardowy ekran” — cały Twój terminal jako płótno do rysowania.stdscr.getmaxyx()— zwraca rozmiar terminala (ile wierszy i kolumn).stdscr.addstr(y, x, tekst)— rysuje tekst na pozycji y, x. Uwaga: najpierw y (wiersz), potem x (kolumna)!stdscr.refresh()— odświeża ekran (bez tego nic nie zobaczysz!).stdscr.getch()— czeka na naciśnięcie klawisza.
Uruchom grę!
python3 src/nyan_cat.py
Widzisz kota! 🎉 Naciśnij dowolny klawisz żeby wyjść.
💡 Jeśli coś poszło nie tak i terminal wygląda dziwnie, wpisz komendę
reset— przywróci go do normy.
🏆 Wyzwanie
- Zmień wygląd kota — narysuj własnego! (edytuj
cat_frames) - Zmień pozycję kota (np. bardziej na środku)
- Dodaj napis na dole ekranu, np. “Wersja 0.1”
- Uruchom grę i sprawdź czy wszystko wygląda OK