{#if data.user}

로그인됨

{data.user.nickname} ({data.user.email})

{:else}

로그인 또는 회원가입을 해주세요.

{/if}

Durable Objects TEST

{isConnected ? '연결됨' : isConnecting ? '연결 중...' : '연결 안됨'}
{#if !isConnected} {:else} {/if}
{online}
실시간 접속자
{#if isConnected && nickname}
{nickname}
{capital.toLocaleString()}원
현재 자본금
{#if lastWinAmount !== 0}
{lastWinAmount > 0 ? '+' : ''}{lastWinAmount.toLocaleString()}원
{/if} {:else}
-
자본금
{/if}
{noMoreBet ? '🚫 베팅 마감' : '✅ 베팅 가능'} {remainingTime}초
{noMoreBet ? '주사위를 굴리는 중... 다음 라운드를 기다려주세요' : '홀/짝, 대/소를 선택하세요!'}
{#if dice1 !== null && dice2 !== null && dice3 !== null}

🎲 결과

{#each [dice1, dice2, dice3] as dice}
{#each getDiceDots(dice) as row} {#each row as dot}
{#if dot}
{/if}
{/each} {/each}
{dice}
{/each}
합계: {dice1 + dice2 + dice3}
{(dice1 + dice2 + dice3) % 2 === 1 ? '✓ 홀수' : '홀수'} {(dice1 + dice2 + dice3) % 2 === 0 ? '✓ 짝수' : '짝수'}
{(dice1 + dice2 + dice3) >= 10 ? '✓ 대' : '대'} {(dice1 + dice2 + dice3) <= 9 ? '✓ 소' : '소'}
{#if oddBet > 0 || evenBet > 0 || bigBet > 0 || smallBet > 0}
{#if oddBet > 0}
홀수 배팅
{oddBet.toLocaleString()}원
{#if oddResult === 'win'}
✓ 승리 +{oddBet.toLocaleString()}원
{:else if oddResult === 'lose'}
✗ 패배
{/if}
{/if} {#if evenBet > 0}
짝수 배팅
{evenBet.toLocaleString()}원
{#if evenResult === 'win'}
✓ 승리 +{evenBet.toLocaleString()}원
{:else if evenResult === 'lose'}
✗ 패배
{/if}
{/if} {#if bigBet > 0}
대 배팅
{bigBet.toLocaleString()}원
{#if bigResult === 'win'}
✓ 승리 +{bigBet.toLocaleString()}원
{:else if bigResult === 'lose'}
✗ 패배
{/if}
{/if} {#if smallBet > 0}
소 배팅
{smallBet.toLocaleString()}원
{#if smallResult === 'win'}
✓ 승리 +{smallBet.toLocaleString()}원
{:else if smallResult === 'lose'}
✗ 패배
{/if}
{/if}
{/if}
{/if}

배팅 선택 (1000원씩 배팅)

{#if capital < 1000 && isConnected}
자본금이 부족합니다!
{/if}
{#if isConnected && allBettings.length > 0}

📊 전체 배팅 현황

{#each allBettings as betting}
{betting.nickname}
{#if betting.oddBet > 0}
{betting.oddBet.toLocaleString()}
{/if} {#if betting.evenBet > 0}
{betting.evenBet.toLocaleString()}
{/if} {#if betting.bigBet > 0}
{betting.bigBet.toLocaleString()}
{/if} {#if betting.smallBet > 0}
{betting.smallBet.toLocaleString()}
{/if}
{/each}
{/if}

게임 규칙

  • ✅ Cloudflare Durable Objects로 상태 관리
  • ✅ WebSocket으로 실시간 양방향 통신
  • 🎲 베팅 기간 (45초): 홀수 또는 짝수 선택 가능
  • 🚫 베팅 마감 (15초): 주사위 결과 확인 및 대기
  • 📊 Progress bar로 남은 시간 시각화
  • 🔄 게임은 자동으로 반복됩니다
  • 👥 모든 접속자에게 실시간 동기화