/** 할리갈리 30초 규칙 요약 (docs/07 §5). Simple redraws (the real card art lives in index.tsx). */ import type { ReactNode } from 'react'; import type { QuickCard } from '../types'; type F = 'strawberry' | 'banana'; const INK: Record = { strawberry: '#e11d48', banana: '#ca8a04' }; /** One fruit centred at (x, y), about 16 units wide. */ function Fruit({ f, x, y }: { f: F; x: number; y: number }) { if (f === 'strawberry') { return ( ); } return ( ); } const SPOTS: Record = { 1: [[20, 28]], 2: [[20, 16], [20, 40]], 3: [[11, 14], [20, 28], [29, 42]], 4: [[11, 15], [29, 15], [11, 41], [29, 41]], 5: [[11, 13], [29, 13], [20, 28], [11, 43], [29, 43]], }; /** A fruit card 40×56 placed at (x, y). */ function Card({ f, n, x, y }: { f: F; n: number; x: number; y: number }) { return ( {SPOTS[n]!.map(([fx, fy], i) => ( ))} ); } function Back({ x, y }: { x: number; y: number }) { return ( ); } function Bell({ x, y }: { x: number; y: number }) { return ( ); } function Table({ children }: { children: ReactNode }) { return ( {children} ); } export const quickStart: QuickCard[] = [ { pic: (
), alt: '뒤집힌 내 카드 더미에서 한 장을 펼쳐 내 앞에 놓는 모습이에요', title: '차례대로 한 장씩 펼쳐요', text: '내 차례에 [뒤집기]를 누르면 내 카드가 한 장 펼쳐져요. 각자 앞에 맨 위 카드만 보여요.', }, { pic: ( 딸기 2+3 = 5 땡!
), alt: '딸기 2개 카드와 딸기 3개 카드가 보여서 딸기가 모두 5개예요. 종을 치면 땡!', title: '딱 5개면 종을 쳐요', text: '펼쳐진 카드에서 한 과일이 모두 합쳐 딱 5개면 가운데 [종!]을 먼저 눌러요. 맞히면 펼친 카드를 다 가져가요.', }, { pic: ( 딸기 6개
), alt: '딸기가 모두 6개라서 종을 치면 안 된다는 빨간 ✕ 표시예요', title: '틀리면 카드를 줘요', text: '4개나 6개일 때 누르면 벌칙으로 카드를 내줘요. 카드를 다 잃으면 탈락이고, 끝까지 남은 사람(시간이 끝나면 카드가 가장 많은 사람)이 이겨요.', }, ];