보안 난수를 사용하는 게임
사다리 타기와 벌칙 룰렛은 브라우저의 보안 난수를 사용합니다. 항목 수로 나눈 나머지를 바로 쓰지 않고 rejection sampling으로 각 index의 확률을 같게 맞춥니다.
사다리는 모든 n! 순열 중 하나를 균등하게 고르고, 제자리 배정을 포함한 1:1 매핑을 생성합니다. 룰렛은 결과를 먼저 고른 뒤 바늘이 그 칸 중심에 멈추도록 회전합니다.
대칭 조건과 물리 판정
핀볼 늦게 떨어지기는 왼쪽 핀 배치를 오른쪽에 정확히 거울 복제하고, 출발 조건과 부스터 패턴을 같은 크기로 반대 방향 적용합니다. 배치를 만드는 seed는 보안 추첨이나 공개 감사 코드가 아닙니다.
탁구와 통통 배구는 120Hz 고정 스텝과 충돌 보호 로직을 사용합니다. 오목과 탭 배틀을 포함한 이 게임들의 판정에는 결과를 바꾸는 난수가 없습니다.
반응과 연타 측정
반응속도 대결은 이벤트 시각을 performance clock으로 정규화하고, 12ms 수집 창 안에서 8ms 이하의 반응 시간 차이를 무승부로 처리합니다. 대기 시간은 Math.random()으로 변화를 주며 보안 난수로 취급하지 않습니다.
탭 배틀은 자동 키 반복과 중복 pointer 이벤트를 제외하고 모든 유효한 새 입력을 한 점으로 계산합니다. 일시정지 시간은 실제 경기 시간에서 제외됩니다.
알아 둘 한계
순간 반응과 연타 결과에는 브라우저 스케줄링, 화면 갱신, 키보드 스위치, 터치 패널, 기기 성능의 차이가 영향을 줄 수 있습니다. 가능하면 두 플레이어가 같은 기기의 같은 화면 조작 방식을 사용하세요.
모여PLAY의 랜덤 게임은 파티 선택을 위한 오락 기능입니다. 금전, 상금, 권리 배분처럼 중요한 결정을 위한 검증된 추첨 서비스로 사용하지 마세요.
게임은 방문자의 브라우저에서 실행되므로 운영 서버가 실행 결과를 원격 검증하지 않습니다. 개발자 도구로 코드나 런타임 상태를 바꾼 경우까지 부정행위로 탐지하거나 증명하는 구조는 아닙니다.
실제 구현과 회귀 테스트
설명만 따로 유지하지 않도록 핵심 난수·매핑·물리 로직과 단위 테스트를 공개 저장소의 실제 파일로 연결합니다. 링크는 현재 main 브랜치의 소스를 가리킵니다.
최종 갱신: