/ / Jak zapisać i załadować grę w trybie tekstowym - c ++, ładuj, zapisz

Jak zapisać i załadować grę w trybie tekstowym - c ++, załaduj, zapisz

Spóźniłem się w projekt gamedev prostej gry tekstowej w C ++.Studiowałem projekt i myślę, że wiem, jak zrobić wszystko, ale utknąłem na czymś: jak zapisać i wczytać grę zgodnie z propozycją. zrobić to.

Odpowiedzi:

6 dla odpowiedzi № 1

Cóż, najprościej myślę, że mamstruktura / klasa reprezentująca cały „stan” gier. A po zapisaniu po prostu zapisujesz całą tę strukturę z pamięci na dysk. Ładowanie byłoby odwrotne.

Jaki format jest na dysku zależy wyłącznie od Ciebie,jeśli twój stan składa się wyłącznie z prostych typów danych, możesz po prostu napisać binarny blob. Możesz też wybrać coś bardziej uniwersalnego, na przykład serializować do XML, to naprawdę zależy od Ciebie.


3 dla odpowiedzi № 2

Opisywany proces jest znany jako„serializacja” - czyli pobranie obiektu w pamięci i przekształcenie go w jakąś formę, którą można zapisać na dysku. Może być tak prosty, jak zwykły zrzut pamięci lub coś skomplikowanego, jak XML.

Proponuję przyjrzeć się artykułowi wikipedii na ten temat: http://en.wikipedia.org/wiki/Serialization


3 dla odpowiedzi nr 3

Spojrzałem tylko na post, ale oto moja sugestia:

Twój stan gry może składać się z kilkustruktury i kilka tablic danych. Struktury określałyby gracza (imię, zdrowie, pieniądze, cokolwiek), broń (atak, przypadek itp.), Zbroję itp. Itd.

Najpierw napiszesz stan gracza, zapisując jego strukturę. Następnie będzie liczba broni posiadanych przez gracza, a następnie szereg struktur broni, ta sama dla zbroi ...

Wtedy byłby format pliku

STRUCT player
INT num_of_weapons
STRUCT weapon
STRUCT weapon
STRUCT weapon
INT num_of_armor
STRUCT armor
STRUCT armor

Można to łatwo zrobić za pomocą Fstream.


1 dla odpowiedzi nr 4

Serializacja XML wydaje się najłatwiejszym rozwiązaniem. Z małymi lekkimi bibliotekami, takimi jak TinyXML jest to jeszcze łatwiejsze. Aby uniemożliwić odczyt plików, możesz użyć prostego zaciemnienia XOR za pomocą skrótu. JSON.


1 dla odpowiedzi nr 5

Nie przeczytałem strony, z którą się związałeś, ale prawdopodobnie będziesz chciał napisać kod, który odczytuje / zapisuje do podstawowego pliku tekstowego, aby załadować / zapisać grę.

Najpierw dowiedz się, jak sformatować plik tekstowy. Na przykład, jeśli piszę grę pacman, która pozwala graczowi zapisywać gry, plik tekstowy może wyglądać mniej więcej tak:

5
54700
3

Napisałbym mój kod, aby przeczytać plik po jednym wierszu na raz:

Linia 1: poziom, na którym znajduje się odtwarzacz.

Linia 2: liczba punktów gracza.

Linia 3: liczba żyć gracza.

Wykonaj wyszukiwanie Google dla wejścia / wyjścia pliku C ++, aby dowiedzieć się, jak napisać rzeczywisty kod.


0 dla odpowiedzi № 6

Wszystko zależy od złożoności plików składowaniabyłoby. Jeśli jest to tylko kilka liczb całkowitych, to prawdopodobnie wystarczy napisać kilka funkcji, które zapisywałyby te wartości do pliku w określonej kolejności, a następnie ładowały je w tej samej kolejności, w jakiej zostały napisane. musi być bardziej złożony i radzić sobie z zapisywaniem wartości wielu obiektów niż serializacja jest najlepszym rozwiązaniem. .