같은 시드인데 공격 결과가 달라진다

목록으로

A는 공격만, B는 선택적으로 장식을 먼저 처리합니다. 첫 턴을 진행한 뒤 상태를 저장하고 복원하여 다음 출력이 이어지는지 확인하세요.

현재 턴—
저장된 체크포인트—
A/B 전투 상태—

A · 전투만 호출

B · 장식 호출 비교

같은 출력의 해석도 계약이다

0…15의 원본 값 16개를 직접 세었습니다. 15를 거절하면 0, 1, 2가 각 5개에 대응합니다.

입력·호출 로그

    계산 중입니다.

    시드는 시작점, 상태는 현재 위치

    문제 · 장식이 전투 결과를 바꾼다

    시드 5의 출력은 10, 3, 0, 1, 6…입니다. 첫 공격은 10이라 실패하지만 같은 스트림에서 불꽃 색상이 10을 소비하면 공격이 3을 받아 명중합니다. 스트림 분리는 이 결합을 끊고 저장할 상태 수를 늘립니다.

    해결 · 같은 논리 시점 저장

    체크포인트는 턴, HP, 두 스트림 상태, 호출 수, 출력 로그, 명중 규칙과 후보 테이블을 함께 복사합니다. 복원 시 해당 규칙도 되돌립니다. ‘시드만 재설정’은 게임 상태를 중간 턴에 놓고 RNG만 시작으로 돌리는 오류 비교입니다.

    대가와 범위

    후보 테이블을 바꾸면 같은 난수 값도 다른 대상을 고릅니다. %3은 6:5:5 대응으로 치우치며 15 거절은 5:5:5가 됩니다. 이 장난감 LCG는 고작 16개 상태를 가지며 실제 품질이나 보안용으로 권하지 않습니다. 게임 전체 결정론은 물리·버전·이벤트 순서까지 별도 계약이 필요합니다.

    Godot의 seed와 state 문서는 상태 복원과 시드 초기화를 구분하며 내부 알고리즘에 의존하지 말라고 안내합니다. 본 실험은 Godot 생성기를 복제하지 않습니다.