✨ 초월적으로 진화한 자리 배치!
인류 역사상 가장 공정하고 전설적인 알고리즘
⚡
100% 초고속 브라우저 난수 연산
웹 암호화 API를 활용해 대기 없이 완전 무작위 배치를 즉시 실행합니다.
🔒
철저한 무결점 개인정보 보호
사용자가 설정한 모든 예외 조건은 외부나 장부에 일절 남지 않고 완전 격리됩니다.
🥠
학생 번호 맞춤 포춘쿠키 & 영원한 장부
당첨된 학생 번호에 맞춘 초월적 운세 3종 세트가 공개 장부에 영구 기록됩니다.
🕵️
전율의 쿵-쿵 폭주 타격 연출
타이틀 5연타 비밀 모드와 상승 주파수 타격감을 직접 느껴보세요! (비밀은 직접 찾아보시길)
전율을 느끼며 시작하기 🚀
🎲 퍼펙트 자리 찾기!
100% 브라우저 난수로 공정하게 자리를 배치합니다!
📋 [실시간 공개] 자리 배치 기록 장부 보러가기 →
🚫 띄어쓰기로 짝꿍을 짓고, 엔터(줄바꿈)로 추가하세요!
새로운 자리 뽑기!
🥁 듀오가 난수 슬롯머신을 굴리는 중...
💻 [투명 공개] 자리 배치 핵심 로직 전체 소스코드
const getCoords=i=>i<24?[Math.floor(i/6),i%6]:(i===24?[4,2]:[4,3]);const isAdjacent=(i,j)=>{let[a,b]=getCoords(i),[c,d]=getCoords(j);return Math.max(Math.abs(a-c),Math.abs(b-d))<=1};const shuffle=a=>{const validBuffer=new Uint32Array(a.length);window.crypto.getRandomValues(validBuffer);const MAX_UINT32=4294967296;for(let c=a.length-1;c>0;c--){let randomFloat=validBuffer[c]/MAX_UINT32;let f=Math.floor(randomFloat*(c+1));[a[c],a[f]]=[a[f],a[c]]}};function executeSeatAssignment(enemiesList){let seats=Array.from({length:26},(_,i)=>String(i+1));let attempts=1;const MAX_ATTEMPTS=100;while(attempts<=MAX_ATTEMPTS){shuffle(seats);let seatMap={};for(let e=0;e<26;e++)seatMap[seats[e]]=e;let conflict=null;for(let[e1,e2]of enemiesList){let idx1=seatMap[e1],idx2=seatMap[e2];if(idx1!==undefined&&idx2!==undefined&&isAdjacent(idx1,idx2)){conflict=[e1,e2];break}}if(!conflict){return{success:true,attempts,seats}}attempts++}return{success:false,attempts:MAX_ATTEMPTS,seats:null}}