forked from Tadrisino/MathApp_frontend
- Text: kasra/fatha/damma/shadda/sukun/hamza-above and «هی» ezafe removed from every user-visible string (comments untouched); tanwin kept. Stale copy fixed (question packs are no longer sold), awkward onboarding sentences rewritten, سؤال → سوال. plainPersian() in MathText cleans the live tutor stream. - Home: the mascot + speech bubble header is gone; the selected companion hops beside the current island and sits at every third bend (CSS transform animations only). - Checkout: order summary, payment-method rows with Zarinpal/Bazaar icons and radio, amount on the pay button, lock trust line, darker overlay. paymentMethods in config.js per channel (web: zarinpal, app: zarinpal+bazaar by default). - Profile: «ورود با حساب دیگر» removed (it was logout); new «حساب کاربری» sheet shows phone/ID and holds «حذف حساب کاربری»; logout is a red row. Delete sheet tells Bazaar subscribers to cancel renewal in Bazaar. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
248 lines
18 KiB
TypeScript
248 lines
18 KiB
TypeScript
import type { DiagramSpec } from '@/diagram/types';
|
||
|
||
/** نمونههای دستنویس از هر نوع شکل، از روی مسئلههای واقعیِ کتابها. فقط برای گالری. */
|
||
export const SAMPLES: { title: string; spec: DiagramSpec }[] = [
|
||
{
|
||
title: 'یازدهم — سهمی با ریشه، رأس، محور تقارن و عرض از مبدأ',
|
||
spec: { kind: 'plane', title: 'y = x² − 2x − 3', axes: true, points: {}, items: [
|
||
{ type: 'function', expr: 'x^2-2x-3', from: -2.5, to: 4.5, label: 'y = x² − 2x − 3', marks: ['roots', 'vertex', 'axis', 'yIntercept'] },
|
||
] },
|
||
},
|
||
{
|
||
title: 'دهم — دایره مثلثاتی، سینوس و کسینوس ۳۰°',
|
||
spec: { kind: 'plane', title: 'زاویه ۳۰ درجه', axes: true, points: { O: [0, 0], A: [1, 0], P: { polar: [1, 30] }, H: { foot: ['P', 'O', 'A'] } }, items: [
|
||
{ type: 'circle', center: 'O', r: 1 },
|
||
{ type: 'segment', from: 'O', to: 'P' },
|
||
{ type: 'segment', from: 'P', to: 'H', dashed: true, color: 'green', label: 'sin 30° = 0.5' },
|
||
{ type: 'segment', from: 'O', to: 'H', color: 'orange', label: 'cos 30°' },
|
||
{ type: 'angle', vertex: 'O', from: 'A', to: 'P', label: '30°' },
|
||
{ type: 'rightAngle', vertex: 'H', from: 'O', to: 'P' },
|
||
] },
|
||
},
|
||
{
|
||
title: 'نهم — مثلث قائمالزاویه، فیثاغورس',
|
||
spec: { kind: 'plane', title: 'وتر = ۵', axes: false, points: { A: [0, 0], B: [4, 0], C: [0, 3] }, items: [
|
||
{ type: 'polygon', points: ['A', 'B', 'C'] },
|
||
{ type: 'rightAngle', vertex: 'A', from: 'B', to: 'C' },
|
||
{ type: 'segment', from: 'A', to: 'B', label: '4' },
|
||
{ type: 'segment', from: 'A', to: 'C', label: '3' },
|
||
{ type: 'segment', from: 'B', to: 'C', label: '?', color: 'red' },
|
||
] },
|
||
},
|
||
{
|
||
title: 'هشتم — خطوط موازی و مورب، زاویههای مساوی',
|
||
spec: { kind: 'plane', title: 'a ∥ b و d مورب', axes: false, points: { _a1: [0, 2], _a2: [6, 2], _b1: [0, 0], _b2: [6, 0], _d1: [1.2, -1], _d2: [4.8, 3], P: { intersect: [['_a1', '_a2'], ['_d1', '_d2']] }, Q: { intersect: [['_b1', '_b2'], ['_d1', '_d2']] } }, items: [
|
||
{ type: 'line', through: ['_a1', '_a2'], label: 'a' },
|
||
{ type: 'line', through: ['_b1', '_b2'], label: 'b' },
|
||
{ type: 'line', through: ['_d1', '_d2'], color: 'purple', label: 'd' },
|
||
{ type: 'angle', vertex: 'P', from: '_a2', to: '_d2', label: 'Â1', arcs: 1 },
|
||
{ type: 'angle', vertex: 'Q', from: '_b2', to: '_d2', label: 'B̂1', arcs: 1 },
|
||
] },
|
||
},
|
||
{
|
||
title: 'هشتم — زاویه محاطی و مرکزی روبهروی یک کمان',
|
||
spec: { kind: 'plane', title: 'زاویه محاطی نصف مرکزی است', axes: false, points: { O: [0, 0], A: { polar: [2, 200] }, B: { polar: [2, -20] }, C: { polar: [2, 100] } }, items: [
|
||
{ type: 'circle', center: 'O', r: 2 },
|
||
{ type: 'arc', center: 'O', r: 2, start: 200, end: 340, label: 'AB' },
|
||
{ type: 'segment', from: 'C', to: 'A' }, { type: 'segment', from: 'C', to: 'B' },
|
||
{ type: 'segment', from: 'O', to: 'A', color: 'blue' }, { type: 'segment', from: 'O', to: 'B', color: 'blue' },
|
||
{ type: 'angle', vertex: 'C', from: 'A', to: 'B', label: '70°' },
|
||
{ type: 'angle', vertex: 'O', from: 'A', to: 'B', label: '140°', color: 'blue' },
|
||
] },
|
||
},
|
||
{
|
||
title: 'نهم — متوازیالاضلاع و وسط ضلعها، ضلعهای مساوی',
|
||
spec: { kind: 'plane', title: 'M و N وسط ضلعها', axes: false, points: { A: [0, 0], B: [4, 0], C: [5, 2.5], D: [1, 2.5], M: { mid: ['A', 'B'] }, N: { mid: ['C', 'D'] } }, items: [
|
||
{ type: 'polygon', points: ['A', 'B', 'C', 'D'] },
|
||
{ type: 'segment', from: 'A', to: 'M', ticks: 1 }, { type: 'segment', from: 'M', to: 'B', ticks: 1 },
|
||
{ type: 'segment', from: 'D', to: 'N', ticks: 2 }, { type: 'segment', from: 'N', to: 'C', ticks: 2 },
|
||
{ type: 'segment', from: 'M', to: 'N', dashed: true, color: 'purple' },
|
||
] },
|
||
},
|
||
{
|
||
title: 'هفتم — دوران ۹۰° مثلث حول C در جهت عقربهها، روی شبکه',
|
||
spec: { kind: 'plane', title: 'دوران ۹۰°', axes: false, grid: true, points: { A: [1, 1], B: [4, 1], C: [1, 3] }, items: [
|
||
{ type: 'polygon', points: ['A', 'B', 'C'] },
|
||
{ type: 'image', of: ['A', 'B', 'C'], transform: { rotate: { center: 'C', deg: -90 } } },
|
||
] },
|
||
},
|
||
{
|
||
title: 'هشتم — بردار و جمع بردارها روی شبکه',
|
||
spec: { kind: 'plane', title: 'AB + BC = AC', axes: false, grid: true, points: { A: [0, 0], B: [3, 1], C: [4, 4] }, items: [
|
||
{ type: 'vector', from: 'A', to: 'B', label: 'a' },
|
||
{ type: 'vector', from: 'B', to: 'C', label: 'b', color: 'blue' },
|
||
{ type: 'vector', from: 'A', to: 'C', label: 'a + b', color: 'green' },
|
||
] },
|
||
},
|
||
{
|
||
title: 'نهم — دو خط و محل برخورد',
|
||
spec: { kind: 'plane', title: 'y = 2x − 1 و y = −x + 5', axes: true, points: { P: { intersect: [[[0, -1], [1, 1]], [[0, 5], [1, 4]]] } }, items: [
|
||
{ type: 'function', expr: '2x-1', from: -1, to: 4, label: 'y = 2x − 1' },
|
||
{ type: 'function', expr: '-x+5', from: -1, to: 6, label: 'y = −x + 5' },
|
||
{ type: 'point', point: 'P', label: 'P (2, 3)' },
|
||
] },
|
||
},
|
||
{
|
||
title: 'یازدهم — نمودار سینوس با مضربهای π',
|
||
spec: { kind: 'plane', title: 'y = sin x', axes: true, trig: true, points: {}, items: [
|
||
{ type: 'function', expr: 'sin(x)', from: -6.2832, to: 6.2832, label: 'y = sin x', marks: ['roots', 'extrema'] },
|
||
{ type: 'hline', y: 0.5, color: 'orange', label: 'y = ½' },
|
||
] },
|
||
},
|
||
{
|
||
title: 'یازدهم — تابع چندضابطهای و حد (نقطه توخالی)',
|
||
spec: { kind: 'plane', title: 'حد چپ و راست در x = 1', axes: true, points: {}, items: [
|
||
{ type: 'piecewise', pieces: [{ expr: 'x+1', from: -2, to: 1, closedFrom: true, closedTo: false }, { expr: '-x+4', from: 1, to: 4, closedFrom: true, closedTo: true }] },
|
||
{ type: 'vline', x: 1, label: 'x = 1' },
|
||
] },
|
||
},
|
||
{
|
||
title: 'دوازدهم — خط مماس بر نمودار',
|
||
spec: { kind: 'plane', title: 'مماس بر y = x² در x = 1', axes: true, points: {}, items: [
|
||
{ type: 'function', expr: 'x^2', from: -2, to: 2.5, label: 'y = x²' },
|
||
{ type: 'tangent', expr: 'x^2', at: 1, label: 'y = 2x − 1' },
|
||
] },
|
||
},
|
||
{
|
||
title: 'دوازدهم — مجانبها: y = 1/(x − 2) + 1',
|
||
spec: { kind: 'plane', title: 'مجانب قائم و افقی', axes: true, xRange: [-2, 6], yRange: [-4, 6], points: {}, items: [
|
||
{ type: 'function', expr: '1/(x-2)+1', from: -2, to: 6, label: 'y = 1/(x−2) + 1' },
|
||
{ type: 'vline', x: 2, label: 'x = 2', color: 'red' },
|
||
{ type: 'hline', y: 1, label: 'y = 1', color: 'red' },
|
||
] },
|
||
},
|
||
{
|
||
title: 'دوازدهم — اکسترممهای نسبی تابع درجه سوم',
|
||
spec: { kind: 'plane', title: 'y = x³ − 3x', axes: true, points: {}, items: [
|
||
{ type: 'function', expr: 'x^3-3x', from: -2.3, to: 2.3, label: 'y = x³ − 3x', marks: ['extrema', 'roots'] },
|
||
] },
|
||
},
|
||
{
|
||
title: 'یازدهم — تابع و وارونش، قرینه نسبت به y = x',
|
||
spec: { kind: 'plane', title: 'f و f⁻¹', axes: true, xRange: [-1, 8], yRange: [-1, 8], points: {}, items: [
|
||
{ type: 'function', expr: '2^x', from: -1, to: 3, label: 'y = 2ˣ' },
|
||
{ type: 'function', expr: 'log(x)/log(2)', from: 0.3, to: 8, label: 'y = log₂x' },
|
||
{ type: 'function', expr: 'x', from: -1, to: 8, dashed: true, color: 'gray', label: 'y = x' },
|
||
] },
|
||
},
|
||
{
|
||
title: 'دوازدهم — مساحت زیر نمودار',
|
||
spec: { kind: 'plane', title: 'ناحیه بین y = √x و محور x', axes: true, points: {}, items: [
|
||
{ type: 'area', expr: 'sqrt(x)', from: 0, to: 4, color: 'green', label: 'S' },
|
||
{ type: 'function', expr: 'sqrt(x)', from: 0, to: 5, label: 'y = √x', color: 'green' },
|
||
] },
|
||
},
|
||
{
|
||
title: 'دهم — ناحیه جواب نامعادله',
|
||
spec: { kind: 'plane', title: 'y > 2x − 1', axes: true, xRange: [-3, 3], yRange: [-4, 4], points: {}, items: [
|
||
{ type: 'region', expr: '2x-1', side: 'above', strict: true, label: 'y > 2x − 1' },
|
||
] },
|
||
},
|
||
{
|
||
title: 'هشتم — محور اعداد: از ۲ سه واحد به چپ',
|
||
spec: { kind: 'numberline', title: '۲ − ۳ = −۱', min: -4, max: 4, points: [{ at: 2, label: 'شروع' }, { at: -1, label: 'پایان' }], jumps: [{ from: 2, to: -1, label: '۳ واحد به چپ' }] },
|
||
},
|
||
{
|
||
title: 'دهم — بازهها روی محور',
|
||
spec: { kind: 'numberline', title: '[−۲، ۳) و (۱، +∞)', min: -4, max: 5, points: [], jumps: [], intervals: [
|
||
{ from: -2, to: 3, closedFrom: true, closedTo: false, label: '[−2, 3)' },
|
||
{ from: 1, to: null, closedFrom: false, label: '(1, +∞)' },
|
||
] },
|
||
},
|
||
{
|
||
title: 'ششم — کسرها روی محور',
|
||
spec: { kind: 'numberline', title: 'سهچهارم', min: 0, max: 2, step: 0.25, fractions: true, points: [{ at: 0.75, label: 'سهچهارم' }], jumps: [] },
|
||
},
|
||
{
|
||
title: 'ششم — کسر روی دایره',
|
||
spec: { kind: 'fraction', title: 'سههشتم', shape: 'circle', parts: 8, shaded: 3 },
|
||
},
|
||
{
|
||
title: 'ششم — ۲۰٪ از ۲۵ خانه',
|
||
spec: { kind: 'grid', title: '۲۰ درصد', rows: 5, cols: 5, shaded: 5 },
|
||
},
|
||
{
|
||
title: 'سوم — مدل ضرب: ۳ گروه ۴تایی',
|
||
spec: { kind: 'groups', title: '۳ × ۴', groups: 3, each: 4, item: 'circle' },
|
||
},
|
||
{
|
||
title: 'سوم — ساعت ۳ و ۲۵ دقیقه',
|
||
spec: { kind: 'clock', title: 'ساعت ۳:۲۵', hour: 3, minute: 25 },
|
||
},
|
||
{
|
||
title: 'سوم — نمودار ستونی آبمیوهها',
|
||
spec: { kind: 'bar', title: 'آبمیوه مورد علاقه', labels: ['پرتقال', 'سیب', 'انگور', 'هلو'], values: [8, 5, 3, 4], unit: 'نفر' },
|
||
},
|
||
{
|
||
title: 'هشتم — نمودار دایرهای',
|
||
spec: { kind: 'pie', title: 'ورزش مورد علاقه', labels: ['فوتبال', 'والیبال', 'شنا', 'بقیه'], values: [12, 6, 4, 2] },
|
||
},
|
||
{
|
||
title: 'دهم — دمای زمین بر حسب عمق (خطشکسته)',
|
||
spec: { kind: 'linechart', title: 'دما (°C)', labels: ['1', '2', '3', '4', '5', '6'], values: [55, 90, 125, 160, 195, 230], unit: '°C' },
|
||
},
|
||
{
|
||
title: 'دهم — جدول تعیین علامت',
|
||
spec: { kind: 'table', title: 'y = (x + 1)(x − 2)', headers: ['x', '−∞', '−1', '', '2', '+∞'], rows: [['y', '+', '0', '−', '0', '+']] },
|
||
},
|
||
{
|
||
title: 'دهم — نمودار ون: A ∩ B',
|
||
spec: { kind: 'venn', title: 'A = {1,2,3,4} و B = {3,4,5}', sets: ['A', 'B'], regions: { A: ['1', '2'], AB: ['3', '4'], B: ['5'], out: ['6'] }, shade: ['AB'] },
|
||
},
|
||
{
|
||
title: 'دهم — ون با سه مجموعه',
|
||
spec: { kind: 'venn', title: 'A − (B ∪ C)', sets: ['A', 'B', 'C'], regions: { A: ['1'], B: ['2'], C: ['3'], AB: ['4'], ABC: ['5'] }, shade: ['A'] },
|
||
},
|
||
{
|
||
title: 'دهم — نمودار پیکانی تابع',
|
||
spec: { kind: 'mapping', title: 'f(x) = 3(x − 1)²', left: ['0', '0.5', '1'], right: ['3', '0.75', '0'], arrows: [[0, 0], [1, 1], [2, 2]], leftLabel: 'دامنه', rightLabel: 'برد' },
|
||
},
|
||
{
|
||
title: 'نهم — نمودار درختی دو بار پرتاب سکه',
|
||
spec: { kind: 'tree', title: '۴ حالت', root: { label: 'شروع', children: [
|
||
{ label: 'رو', p: '1/2', children: [{ label: 'رو', p: '1/2' }, { label: 'پشت', p: '1/2' }] },
|
||
{ label: 'پشت', p: '1/2', children: [{ label: 'رو', p: '1/2' }, { label: 'پشت', p: '1/2' }] },
|
||
] } },
|
||
},
|
||
{ title: 'هفتم — مکعبمستطیل', spec: { kind: 'solid', title: 'حجم = ۵ × ۳ × ۴', shape: 'cuboid', dims: { a: 5, b: 3, c: 4 }, labels: { a: '5 cm', b: '3 cm', c: '4 cm' } } },
|
||
{ title: 'هفتم — مکعب', spec: { kind: 'solid', title: 'مکعب', shape: 'cube', dims: { a: 3 }, labels: { a: 'a' } } },
|
||
{ title: 'هفتم — منشور سهپهلو', spec: { kind: 'solid', title: 'منشور مثلثی', shape: 'prism', dims: { n: 3, r: 1.2, h: 2 }, labels: { h: 'h' } } },
|
||
{ title: 'نهم — منشور ششپهلو', spec: { kind: 'solid', title: 'منشور ششضلعی', shape: 'prism', dims: { n: 6, r: 1.2, h: 1.6 }, labels: { h: '8 cm' } } },
|
||
{ title: 'نهم — هرم مربعالقاعده با ارتفاع', spec: { kind: 'solid', title: 'هرم', shape: 'pyramid', dims: { n: 4, r: 1.3, h: 2 }, labels: { h: 'h', a: 'a' } } },
|
||
{ title: 'نهم — هرم پنجپهلو', spec: { kind: 'solid', title: 'قاعده ABCDE', shape: 'pyramid', dims: { n: 5, r: 1.3, h: 2 }, labels: { h: 'OH' } } },
|
||
{ title: 'نهم — استوانه', spec: { kind: 'solid', title: 'لیوان استوانهای', shape: 'cylinder', dims: { r: 6, h: 10 }, labels: { r: '6 cm', h: 'h' } } },
|
||
{ title: 'نهم — مخروط', spec: { kind: 'solid', title: 'ظرف مخروطی', shape: 'cone', dims: { r: 4, h: 12 }, labels: { r: '4 cm', h: '12 cm' } } },
|
||
{ title: 'نهم — کره', spec: { kind: 'solid', title: 'کره', shape: 'sphere', dims: { r: 1 }, labels: { r: 'r' } } },
|
||
{ title: 'نهم — نیمکره', spec: { kind: 'solid', title: 'پیمانه نیمکره', shape: 'hemisphere', dims: { r: 12 }, labels: { r: '12 cm' } } },
|
||
{ title: 'ششم — مقایسه یکپنجم و نهدهم', spec: { kind: 'fraction', title: 'کدام بزرگتر است؟', shape: 'rect', parts: 5, shaded: 1, compare: [{ parts: 5, shaded: 1, label: 'یکپنجم' }, { parts: 10, shaded: 9, label: 'نهدهم' }] } },
|
||
{ title: 'ششم — دو و هفتدهم', spec: { kind: 'fraction', title: '۲٫۷', shape: 'circle', parts: 10, shaded: 7, wholes: 2 } },
|
||
{ title: 'دهم — دایره و خط مماس از معادله', spec: { kind: 'plane', title: 'فاصله مرکز تا خط', axes: true, points: { O: [-1, 2] }, items: [
|
||
{ type: 'line', eq: [3, 5, 4], label: '3x + 5y = 4' }, { type: 'circle', center: 'O', r: 0.5145, color: 'green' },
|
||
] } },
|
||
{ title: 'هشتم — زاویه خارجی پنجضلعی با امتداد ضلع', spec: { kind: 'plane', title: 'زاویه خارجی = ۷۲°', axes: false, points: { A: { polar: [2, 234] }, B: { polar: [2, 306] }, C: { polar: [2, 18] }, D: { polar: [2, 90] }, E: { polar: [2, 162] }, X: { along: ['A', 'B', 1.6] } }, items: [
|
||
{ type: 'polygon', points: ['A', 'B', 'C', 'D', 'E'] }, { type: 'segment', from: 'B', to: 'X', dashed: true }, { type: 'angle', vertex: 'B', from: 'X', to: 'C', label: '72°' },
|
||
] } },
|
||
{ title: 'سوم — ضرب روی محور اعداد (تیکهای زیاد)', spec: { kind: 'numberline', title: '۲ × ۱۱', min: 0, max: 25, points: [{ at: 11, label: '' }, { at: 22, label: '' }], jumps: [{ from: 0, to: 11, label: '۱۱' }, { from: 11, to: 22, label: '۱۱' }] } },
|
||
{ title: 'نهم — مثلث از روی داده: AB = 6، AC = 8، زاویه A قائمه', spec: { kind: 'plane', title: 'فیثاغورس', axes: false, points: {}, items: [
|
||
{ type: 'triangle', names: ['A', 'B', 'C'], sides: { AB: 6, AC: 8 }, angles: { A: 90 }, labels: { BC: 'x' } },
|
||
] } },
|
||
{ title: 'هشتم — مثلث با سه ضلع ۵، ۷، ۹ و ارتفاع از C', spec: { kind: 'plane', title: 'ارتفاع وارد بر AB', axes: false, points: {}, items: [
|
||
{ type: 'triangle', names: ['A', 'B', 'C'], sides: { AB: 9, BC: 7, CA: 5 }, altitude: 'C', labels: { h: 'h' } },
|
||
] } },
|
||
{ title: 'هفتم — مثلث با دو زاویه (۴۰° و ۷۵°)', spec: { kind: 'plane', title: 'زاویه سوم؟', axes: false, points: {}, items: [
|
||
{ type: 'triangle', names: ['A', 'B', 'C'], angles: { A: 40, B: 75 }, labels: { C: '?' } },
|
||
] } },
|
||
{ title: 'منفرجه — ارتفاع بیرون مثلث', spec: { kind: 'plane', title: 'زاویه B = ۱۲۰°', axes: false, points: {}, items: [
|
||
{ type: 'triangle', names: ['A', 'B', 'C'], sides: { AB: 4, BC: 3 }, angles: { B: 120 }, altitude: 'C' },
|
||
] } },
|
||
{ title: 'ششم — مستطیل باغچه ۸ × ۵', spec: { kind: 'plane', title: 'باغچه', axes: false, points: {}, items: [{ type: 'quad', shape: 'rectangle', names: ['A', 'B', 'C', 'D'], w: 8, h: 5 }] } },
|
||
{ title: 'مربع با ضلع ۴', spec: { kind: 'plane', title: 'مربع', axes: false, points: {}, items: [{ type: 'quad', shape: 'square', names: ['A', 'B', 'C', 'D'], side: 4 }] } },
|
||
{ title: 'ششم — متوازیالاضلاع: قاعده ۷، ارتفاع ۴', spec: { kind: 'plane', title: 'مساحت = قاعده × ارتفاع', axes: false, points: {}, items: [{ type: 'quad', shape: 'parallelogram', names: ['A', 'B', 'C', 'D'], w: 7, h: 4 }] } },
|
||
{ title: 'هفتم — لوزی با قطرهای ۸ و ۶', spec: { kind: 'plane', title: 'مساحت = نصف حاصلضرب قطرها', axes: false, points: {}, items: [{ type: 'quad', shape: 'rhombus', names: ['A', 'B', 'C', 'D'], d1: 8, d2: 6 }] } },
|
||
{ title: 'هشتم — ذوزنقه: قاعدههای ۱۰ و ۶، ارتفاع ۴', spec: { kind: 'plane', title: 'ذوزنقه', axes: false, points: {}, items: [{ type: 'quad', shape: 'trapezoid', names: ['A', 'B', 'C', 'D'], w: 10, top: 6, h: 4 }] } },
|
||
{ title: 'ذوزنقه قائمالزاویه', spec: { kind: 'plane', title: 'ذوزنقه قائم', axes: false, points: {}, items: [{ type: 'quad', shape: 'trapezoid', names: ['A', 'B', 'C', 'D'], w: 8, top: 5, h: 4, right: true }] } },
|
||
{ title: 'هفتم — الگوی مربعی ۱، ۴، ۹ و شکل بعدی', spec: { kind: 'pattern', title: 'الگوی n²', layout: 'square', unit: 'square', stages: [1, 2, 3], next: true } },
|
||
{ title: 'هفتم — الگوی چوبکبریت', spec: { kind: 'pattern', title: 'چوبکبریت: 3n + 1', layout: 'row', unit: 'stick', stages: [1, 2, 3, 4], next: true } },
|
||
{ title: 'دهم — عددهای مثلثی با نقطه', spec: { kind: 'pattern', title: '۱، ۳، ۶، ۱۰', layout: 'triangle', unit: 'dot', stages: [1, 2, 3, 4] } },
|
||
];
|