2.1 KiB
퍼즐별 로컬 기록과 최근 자유 놀이
배경
아이들이 여러 퍼즐을 오가고 완료한 곳도 다시 풀 수 있다. 중단한 배치까지 이어야 하며 두 퍼즐의 진행과 최근 자유 놀이가 서로 덮이지 않아야 한다. 계정 없이 오프라인으로 혼자 플레이한다.
결정
JSON 버전 1에서 번호별 미완료 상태, 감소하지 않는 완료 기록, 본 시범과 자유 놀이 한 상태를 보관한다. 저장 인터페이스로 파일 접근을 분리하고 전체 검증·임시 파일 교체·유효 백업 복구를 사용한다.
대안
모든 플레이를 한 슬롯에 저장하면 단순하지만 다른 퍼즐로 이동할 때 배치를 잃는다. 자유 놀이를 번호별 여러 슬롯에 보관하면 작품을 더 남길 수 있지만 사용자가 정한 ‘최근 하나’와 다른 보관·선택 기능이 필요하다. 계정·클라우드는 기기 간 복구를 제공하지만 오프라인 단독 체험판에 인증·서버·동기화를 추가한다.
결과
완료 번호의 재플레이 미완료 상태와 완료 기록이 동시에 존재할 수 있다. 자유 놀이 새 진입은 이전 하나를 교체한다. 기기 손실·앱 데이터 삭제 후 원격 복구는 불가능하다. 스키마 변경에는 기존 유효 저장의 처리 결정을 먼저 해야 하며 unsupported 버전을 최신 형식으로 조용히 읽을 수 없다.
2026-10-10의 새 지형 진입에서는 모양을 유지한 가장 가까운 안전 위치 보정을 먼저 선택한다. 전체 저장 삭제는 완료·다른 이어하기를 잃고, 묶음 축소·변형은 아이의 배열을 바꾸므로 사용하지 않는다. 유효한 배치가 없는 경우에만 문제된 이어하기 하나를 해당 번호의 처음 배치로 되돌리는 사용자 선택 예외를 적용한다. 자유 놀이는 자유 놀이로 남고 완료·해금·시범·다른 슬롯은 보존한다. 검사 오류나 검색 한도 도달은 불가능성의 증거가 아니므로 초기화하지 않으며 전체 후보의 단일 저장 성공 뒤에만 진입을 확정한다.