Chodzi mi oto np. jak w grach czy programach jest opcja "Zapisz stan gry" itp. Jak takie coś zrobić w python (nie pygame) . Jest do tego komenda? Da się to zrobić z komendą "input"?
Jak zapisać grę w python (nie pygame) z poziomu programu?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 8487
Nie rozumiem, co ma zapisywanie stanu gry do komendy input?
Jak chcesz zapisać mieć opcję zapisania/ładowania gry, to musisz zadbać o to, żeby stan twojej gry można było łatwo zapisać / odtworzyć. Kwestia designu struktur danych i całej gry.
Technicznie zaś mógłbyś zapisywać dane gry w jakimś JSON (czy innym formacie, jak @Spine sugeruje niżej) i później je wczytywać i na podstawie tego, co tam masz, to odtwarzać stan gry.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6964
Wiele zależy od rodzaju gry i momentu, w którym chcesz dokonać zapisu.
Jeśli to zwykła gra konsolowa, to najprościej by było trzymać stan gry w jednej klasie.
Wtedy możesz zapisywać i wczytywać tą klasę.
Np. modułem shelve: https://docs.python.org/3/library/shelve.html
Albo marshal: https://docs.python.org/3/library/marshal.html
Albo pickle: https://docs.python.org/3/library/pickle.html
Poczytaj sobie o nich i różnicach między nimi.
Przez całą rozgrywkę operujesz na tej klasie i w dogodnym momencie zapisujesz jej zawartość.
Jeśli potrzebujesz zapisywać stan obiektów jak np. rozmieszczenie wrogów, utworzone obiekty itp., to już musisz sobie to jakoś rozplanować.
Żeby zapisywać i ładować te dane bez zgrzytów. Najprościej grę podzielić na "checkpointy" i po prostu sobie zapisać do którego poziomu doszedł gracz ;)