Files
matheleicht/src/data/exercises.ts
T
2026-04-19 20:41:10 +00:00

131 lines
4.6 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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;