mindworldschool/addition-subtraction
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
# MindWorld School - Тренажер "Додавання та віднімання"

Інтерактивний освітній тренажер для навчання дітей додавання та віднімання чисел.
## 🎯 Особливості
- **3 рівні складності:**
- Легкий (≤10)
- Середній (≤100 без переходу через десяток)
- Просунутий (≤100 з переходом через десяток)
- **3 режими відповіді:**
- 2 варіанти
- 3 варіанти
- Ввід відповіді вручну
- **Мультимовність:** Українська, English, Русский, Español
- **Статистика:** Відстеження правильних відповідей, помилок та серії
- **Звукові ефекти:** Аудіо фідбек для дій користувача
- **Адаптивний дизайн:** Працює на всіх пристроях
## 📁 Структура проекту
```
mindworld-trainer/
├── index.html
├── css/
│ └── styles.css
├── js/
│ ├── main.js # Основна логіка додатку
│ ├── generator.js # Генерація завдань
│ ├── answers.js # Генерація варіантів відповідей
│ ├── storage.js # Робота з localStorage
│ └── ui.js # UI та інтернаціоналізація
└── assets/
├── img/
│ ├── logo.png
│ └── screen-bg.jpg
└── sfx/
├── click.wav
├── success.wav
└── error.wav
```
## 🚀 Встановлення
1. **Клонуйте репозиторій:**
```bash
git clone https://github.com/your-username/mindworld-trainer.git
cd mindworld-trainer
```
2. **Додайте необхідні ресурси:**
- Помістіть логотип у `assets/img/logo.png`
- Помістіть фонове зображення у `assets/img/screen-bg.jpg`
- Додайте звукові файли в `assets/sfx/`
3. **Відкрийте `index.html` у браузері** або розгорніть на веб-сервері
## 🌐 Розгортання на GitHub Pages
1. Завантажте всі файли в репозиторій GitHub
2. Перейдіть в Settings → Pages
3. Виберіть гілку `main` та папку `root`
4. Збережіть налаштування
5. Ваш тренажер буде доступний за адресою: `https://your-username.github.io/mindworld-trainer/`
## 🔧 Інтеграція в Tilda
1. Розгорніть проект на GitHub Pages
2. В Tilda додайте блок "HTML"
3. Вставте код:
```html
<iframe
src="https://your-username.github.io/mindworld-trainer/"
width="100%"
height="800px"
frameborder="0"
style="border-radius: 20px; box-shadow: 0 6px 24px rgba(0,0,0,.12);">
</iframe>
```
## 📝 Технічні деталі
### Генератор завдань (generator.js)
**Рівень 1 (Легкий):**
- Додавання: 0–10, сума ≤ 10
- Віднімання: 0–10, результат ≥ 0
**Рівень 2 (Середній):**
- Додавання: 0–100, без переносу (сума одиниць ≤ 10)
- Віднімання: 0–100, без позики (a_units ≥ b_units)
**Рівень 3 (Просунутий):**
- Додавання: з переносом через десяток
- Віднімання: з позикою з десятків
### Система відповідей (answers.js)
- Генерує 2 або 3 варіанти відповіді
- Додає типові помилки (60% ймовірність для режиму "3 варіанти")
- Випадковий порядок варіантів
### Локальне збереження (storage.js)
Зберігає в localStorage:
- Налаштування користувача (рівень, режим, мова)
- Логи відповідей (правильні/неправильні)
- Статистика
## 🎨 Кастомізація
### Зміна кольорів
Відредагуйте CSS змінні в `styles.css`:
```css
:root {
--orange: #EC8D00;
--coral: #E8654B;
--ivory: #FDF8F3;
--green: #2e7d32;
--red: #c62828;
}
```
### Додавання нових мов
1. Додайте переклади в `ui.js`:
```javascript
window.I18N = {
// ... існуючі мови
fr: {
title: "Addition et Soustraction",
// ... інші ключі
}
};
```
2. Додайте кнопку мови в `index.html`:
```html
<button class="lang-btn" data-lang="fr">FR</button>
```
## 📊 API Storage
```javascript
// Зберегти налаштування
Storage.saveSettings({level: 'easy', mode: '2', series: 10, lang: 'uk'});
// Завантажити налаштування
const settings = Storage.loadSettings();
// Логувати результат
Storage.logResult({ok: true, task: {...}, value: 12});
// Отримати статистику
const stats = Storage.getStats(); // {total, correct, wrong, accuracy}
// Експортувати всі дані
const json = Storage.exportJSON();
// Очистити всі дані
Storage.clearAll();
```
## 🎮 Клавіатурні скорочення
- **1, 2, 3** - Вибір варіанту відповіді (в режимах 2/3 варіанти)
- **Enter** - Підтвердити введену відповідь (в режимі вводу)
## 🐛 Відомі обмеження
- Звукові ефекти вимагають взаємодії користувача для розблокування (обмеження браузера)
- localStorage обмежений ~5-10MB (достатньо для тисяч записів)
## 🔄 Версії
### v14 (Поточна)
- ✅ Виправлено дублікати коду
- ✅ Оптимізовано генератор завдань
- ✅ Покращено адаптивність налаштувань
- ✅ Виправлено відображення правильної відповіді на дошці
- ✅ Виправлено логіку показу/приховування поля вводу
- ✅ Додано коментарі та документацію
## 📞 Підтримка
Для питань та пропозицій:
- Email: support@mindworldschool.com
- Website: https://mindworldschool.com
## 📄 Ліцензія
© 2024 MindWorld School. Всі права захищені.
---
**Створено з ❤️ для дітей**