저는 현재 Roguelike의 'save_game'기능을 만들기 위해 cPickle을 사용하려고합니다.
save_game()은 게임 상태를 제대로 처리하지만 게임을 종료하면 load_game() 함수가 저장된 게임을 다시 열려고 시도 할 때 절인 파일이 존재 함을 알리지 않습니다. 로드 된 저장된 데이터 없음).
여기 save_game()이다 :
def save_game():
#Write the game data to a cPickled file
f = open('savegame', 'wb')
cPickle.dump('map',f, protocol=cPickle.HIGHEST_PROTOCOL)
cPickle.dump('objects',f, protocol=cPickle.HIGHEST_PROTOCOL)
cPickle.dump('player_index',f, protocol=cPickle.HIGHEST_PROTOCOL)
cPickle.dump('stairs_index', f, protocol=cPickle.HIGHEST_PROTOCOL)
cPickle.dump('inventory',f, protocol=cPickle.HIGHEST_PROTOCOL)
cPickle.dump('game_msgs',f, protocol=cPickle.HIGHEST_PROTOCOL)
cPickle.dump('game_state',f, protocol=cPickle.HIGHEST_PROTOCOL)
cPickle.dump('dungeon_level',f, protocol=cPickle.HIGHEST_PROTOCOL)
f.close()
이것은 load_game()이다 :
f = open('savegame', 'rb')
cPickle.load(f)
f.close()
내가 제대로이 일을하고 있는가, 아니면 모든베이스 ackwards입니까? lol
우우, 고마워! 내가 약간의 변경을하면 파일을 저장해야하지만, 이제 'mapData'에 대한 전역이 정의되지 않았다고 알려줍니다. save_game과 load_game 모두에서 글로벌화를 시도했지만 어느 것도 작동하지 않는 것 같습니다. –
mapData는지도 데이터가 저장된 개체에 대한 홀더 변수였습니다. '지도'입니까? 그렇다면, { 'map': map}을 dict에 넣으십시오. 피클에 쓰는 것은 변수 이름이 아닌 실제 객체입니다. –
작동 했습니까? 이 대답이 받아 들여질만한 가치가 있다고 생각한다면 궁금합니다. –