/** 섯다 30초 규칙 요약 (docs/07 §5). */
import type { CSSProperties, ReactNode } from 'react';
import { HwatuCard, type HwatuInfo } from '../../components/cards/HwatuCard';
import type { QuickCard } from '../types';
/** Illustration card: month + 광/열끗 (special) or 띠/기러기. Same idea as the 족보표 in index.tsx. */
function hw(month: number, special: boolean): HwatuInfo {
const gwang = [1, 3, 8].includes(month);
const kind: HwatuInfo['kind'] = special ? (gwang ? 'gwang' : 'yeol') : month === 8 ? 'pi' : 'tti';
return {
id: (month - 1) * 4 + (special ? 0 : 1),
month,
kind,
...(kind === 'tti' ? { tti: 'plain' as const } : {}),
name: `${month}월 ${special ? (gwang ? '광' : '열끗') : month === 8 ? '기러기' : '띠'}`,
};
}
function Pair({ a, b, label, size = 'sm' }: { a: [number, boolean]; b: [number, boolean]; label: string; size?: 'sm' | 'md' }) {
return (
);
}
function Row({ children, gap = 10 }: { children: ReactNode; gap?: number }) {
return {children}
;
}
const btn = (bg: string): CSSProperties => ({
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
minWidth: 74,
height: 40,
borderRadius: 10,
background: bg,
color: '#fff',
fontWeight: 800,
fontSize: '1.05rem',
});
function Buttons() {
return (
다이
체크
콜
하프
);
}
const gt = >;
export const quickStart: QuickCard[] = [
{
pic: (
),
alt: '3월 광과 8월 광 화투 두 장이 놓여 있고 38광땡이라고 적혀 있어요',
title: '2장 조합이 센 사람이 이겨요',
text: '화투 2장의 조합(족보)을 겨뤄요. 가장 센 족보를 가진 사람이 가운데 모인 칩을 모두 가져가요.',
},
{
pic: ,
alt: '다이, 체크, 콜, 하프라고 적힌 버튼 네 개가 있어요',
title: '차례가 오면 칩을 걸어요',
text: '[체크]·[콜]·[하프] 같은 버튼으로 칩을 걸고, 패가 약하면 [다이]로 이번 판을 포기해요. 다른 사람이 다 다이하면 내가 가져가요.',
},
{
pic: (
{gt}
{gt}
),
alt: '장땡, 알리, 8끗 순서로 화투 두 장씩 놓여 있고 사이에 큰 쪽 표시가 있어요',
title: '땡 > 알리 > 끗 순서예요',
text: "광땡 > 땡(같은 달 2장) > 알리·독사 등 > 끗(두 달을 더한 일의 자리) 순으로 세요. 화면의 '족보표'를 보면 쉬워요.",
},
];