131 lines
4.6 KiB
TypeScript
131 lines
4.6 KiB
TypeScript
export type Level = {
|
||
id: string;
|
||
label: string;
|
||
min: number;
|
||
max: number;
|
||
};
|
||
|
||
export type Exercise = {
|
||
slug: string;
|
||
title: string;
|
||
category: 'Grundschule' | 'Jugendliche' | 'Erwachsene';
|
||
categoryIntro: string;
|
||
short: string;
|
||
description: string;
|
||
operation: 'addition' | 'subtraction' | 'multiplication' | 'division' | 'percentage';
|
||
accent: 'coral' | 'lavender' | 'mint' | 'yellow';
|
||
levels: Level[];
|
||
};
|
||
|
||
export const exercises: Exercise[] = [
|
||
{
|
||
slug: 'addieren-bis-20',
|
||
title: 'Addieren bis 20',
|
||
category: 'Grundschule',
|
||
categoryIntro: 'Für erste Plusaufgaben mit kleinen Zahlen und schnellen Erfolgserlebnissen.',
|
||
short: 'Einfache Plusaufgaben für Kinder in der Grundschule.',
|
||
description: 'Ideal für einen lockeren Einstieg: kleine Summen, klares Feedback und kurze Übungsrunden.',
|
||
operation: 'addition',
|
||
accent: 'coral',
|
||
levels: [
|
||
{ id: 'leicht', label: 'Leicht', min: 1, max: 10 },
|
||
{ id: 'mittel', label: 'Mittel', min: 1, max: 20 },
|
||
{ id: 'knifflig', label: 'Knifflig', min: 5, max: 20 },
|
||
],
|
||
},
|
||
{
|
||
slug: 'subtrahieren-bis-100',
|
||
title: 'Subtrahieren bis 100',
|
||
category: 'Grundschule',
|
||
categoryIntro: 'Minusaufgaben Schritt für Schritt mit passenden Zahlenbereichen.',
|
||
short: 'Subtraktion üben – vom kleinen Rechnen bis zu größeren Zahlen.',
|
||
description: 'Geeignet zum Festigen von Minusaufgaben mit verständlichen Schwierigkeitsstufen.',
|
||
operation: 'subtraction',
|
||
accent: 'yellow',
|
||
levels: [
|
||
{ id: 'leicht', label: 'Leicht', min: 1, max: 20 },
|
||
{ id: 'mittel', label: 'Mittel', min: 10, max: 50 },
|
||
{ id: 'stark', label: 'Stark', min: 20, max: 100 },
|
||
],
|
||
},
|
||
{
|
||
slug: 'einmaleins',
|
||
title: 'Kleines Einmaleins',
|
||
category: 'Grundschule',
|
||
categoryIntro: 'Das Einmaleins mit spielerischem Tempo festigen.',
|
||
short: 'Malaufgaben für die wichtigsten Reihen und sichere Grundlagen.',
|
||
description: 'Trainiert das schnelle Wiedererkennen von Multiplikationsaufgaben und Ergebnissen.',
|
||
operation: 'multiplication',
|
||
accent: 'lavender',
|
||
levels: [
|
||
{ id: 'leicht', label: 'Leicht', min: 1, max: 5 },
|
||
{ id: 'mittel', label: 'Mittel', min: 2, max: 10 },
|
||
{ id: 'stark', label: 'Stark', min: 4, max: 12 },
|
||
],
|
||
},
|
||
{
|
||
slug: 'dividieren',
|
||
title: 'Dividieren ohne Rest',
|
||
category: 'Jugendliche',
|
||
categoryIntro: 'Geteilt-Aufgaben mit glatten Ergebnissen und klaren Mustern.',
|
||
short: 'Division üben, ohne sich direkt mit Resten aufzuhalten.',
|
||
description: 'Eine gute Zwischenstufe für Lernende, die sicher mit Malaufgaben werden wollen.',
|
||
operation: 'division',
|
||
accent: 'mint',
|
||
levels: [
|
||
{ id: 'leicht', label: 'Leicht', min: 2, max: 5 },
|
||
{ id: 'mittel', label: 'Mittel', min: 2, max: 10 },
|
||
{ id: 'stark', label: 'Stark', min: 3, max: 12 },
|
||
],
|
||
},
|
||
{
|
||
slug: 'kopfrechnen',
|
||
title: 'Kopfrechnen Mix',
|
||
category: 'Jugendliche',
|
||
categoryIntro: 'Schnelle Aufgaben für ein besseres Gefühl für Zahlen.',
|
||
short: 'Gemischte Rechenaufgaben für mehr Sicherheit im Alltag und in der Schule.',
|
||
description: 'Abwechslung aus Plus, Minus und Mal – direkt im Browser, ohne Anmeldung.',
|
||
operation: 'addition',
|
||
accent: 'coral',
|
||
levels: [
|
||
{ id: 'leicht', label: 'Leicht', min: 5, max: 30 },
|
||
{ id: 'mittel', label: 'Mittel', min: 20, max: 80 },
|
||
{ id: 'stark', label: 'Stark', min: 50, max: 150 },
|
||
],
|
||
},
|
||
{
|
||
slug: 'prozente-im-alltag',
|
||
title: 'Prozente im Alltag',
|
||
category: 'Erwachsene',
|
||
categoryIntro: 'Rabatte, Trinkgeld und einfache Prozentrechnungen sicher beherrschen.',
|
||
short: 'Praktische Prozentaufgaben für Alltag, Beruf und Einkauf.',
|
||
description: 'Trainiert typische Prozentrechnungen mit verständlichen Zahlen und direktem Feedback.',
|
||
operation: 'percentage',
|
||
accent: 'lavender',
|
||
levels: [
|
||
{ id: 'leicht', label: 'Leicht', min: 10, max: 100 },
|
||
{ id: 'mittel', label: 'Mittel', min: 20, max: 250 },
|
||
{ id: 'stark', label: 'Stark', min: 50, max: 500 },
|
||
],
|
||
},
|
||
];
|
||
|
||
export function getExercise(slug: string) {
|
||
return exercises.find((exercise) => exercise.slug === slug);
|
||
}
|
||
|
||
export const categories = [
|
||
{
|
||
title: 'Grundschule',
|
||
intro: 'Spielerische Aufgaben für Kinder mit klarer Struktur, großen Zahlen und einfachem Feedback.',
|
||
},
|
||
{
|
||
title: 'Jugendliche',
|
||
intro: 'Mehr Tempo, mehr Sicherheit und abwechslungsreiche Aufgaben für Schule und Alltag.',
|
||
},
|
||
{
|
||
title: 'Erwachsene',
|
||
intro: 'Praktisches Rechnen für Alltagssituationen – ohne unnötigen Ballast und ohne Login.',
|
||
},
|
||
] as const;
|