egegraf / index.html
Kingrane's picture
Add 3 files
721b358 verified
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ОрфоГрад | Тренажер орфографии для ЕГЭ</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css">
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&family=Roboto+Flex:wght@300;400;500;600&family=Rubik:wght@400;500;600;700&display=swap" rel="stylesheet">
<style>
body {
font-family: 'Rubik', sans-serif;
background-color: #f8fafc;
}
.title-font {
font-family: 'Montserrat', sans-serif;
font-weight: 700;
}
.card {
background: rgba(255, 255, 255, 0.98);
backdrop-filter: blur(12px);
border-radius: 24px;
box-shadow: 0 12px 40px rgba(103, 114, 229, 0.12);
border: 1px solid rgba(255, 255, 255, 0.25);
transition: all 0.3s ease;
}
.card:hover {
box-shadow: 0 16px 48px rgba(103, 114, 229, 0.18);
transform: translateY(-4px);
}
.letter-option {
transition: all 0.2s ease;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08);
border-radius: 14px;
}
.letter-option:hover {
transform: translateY(-4px);
box-shadow: 0 8px 20px rgba(103, 114, 229, 0.25);
}
.correct {
background-color: #f0fdf4 !important;
color: #16a34a !important;
border-color: #22c55e !important;
box-shadow: 0 6px 16px rgba(34, 197, 94, 0.25) !important;
}
.incorrect {
background-color: #fef2f2 !important;
color: #dc2626 !important;
border-color: #ef4444 !important;
box-shadow: 0 6px 16px rgba(239, 68, 68, 0.2) !important;
}
.progress-dot {
width: 14px;
height: 14px;
border-radius: 50%;
background-color: #e2e8f0;
transition: all 0.3s ease;
}
.progress-dot.active {
background-color: #6366f1;
transform: scale(1.3);
box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.25);
}
.progress-dot.correct {
background-color: #22c55e;
}
.progress-dot.incorrect {
background-color: #ef4444;
}
.highlight {
position: relative;
z-index: 1;
}
.highlight::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 40%;
background-color: #c7d2fe;
z-index: -1;
opacity: 0.4;
border-radius: 6px;
transition: all 0.3s ease;
}
.hint-btn {
transition: all 0.3s ease;
background: linear-gradient(135deg, #e0e7ff 0%, #f0f9ff 100%);
border-radius: 14px;
}
.hint-btn:hover {
background: linear-gradient(135deg, #d4dcfa 0%, #e6f4fe 100%);
transform: translateY(-3px);
}
.next-btn {
background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
box-shadow: 0 6px 18px rgba(99, 102, 241, 0.35);
transition: all 0.3s ease;
border-radius: 14px;
}
.next-btn:hover {
transform: translateY(-3px);
box-shadow: 0 8px 24px rgba(99, 102, 241, 0.45);
}
.stats-card {
background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
box-shadow: 0 6px 28px rgba(0, 0, 0, 0.08);
border-radius: 20px;
}
.stats-item {
transition: all 0.3s ease;
border-radius: 16px;
}
.stats-item:hover {
transform: translateY(-4px);
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.05);
}
.word-display {
text-shadow: 0 3px 6px rgba(0, 0, 0, 0.08);
letter-spacing: 0.5px;
}
@media (max-width: 640px) {
.options-grid {
grid-template-columns: repeat(2, 1fr) !important;
}
}
</style>
</head>
<body class="min-h-screen bg-gradient-to-br from-blue-50 to-indigo-50">
<div class="container mx-auto px-4 py-8 max-w-4xl">
<!-- Header -->
<header class="mb-10 text-center">
<h1 class="text-5xl font-bold text-indigo-900 mb-4 title-font">ОрфоГрад</h1>
<p class="text-xl text-indigo-600/90">Тренажер орфографии для подготовки к ЕГЭ</p>
</header>
<!-- Main Card -->
<main class="card p-8 mb-10 animate__animated animate__fadeIn">
<!-- Progress -->
<div class="flex justify-between items-center mb-8">
<div class="flex space-x-2 overflow-x-auto pb-2" style="max-width: 80%">
<div id="progress-dots" class="flex space-x-2"></div>
</div>
<span id="progress-text" class="text-sm font-medium text-indigo-600/90">1/250</span>
</div>
<!-- Word Display -->
<div class="text-center mb-10">
<div id="word-display" class="text-5xl font-medium text-gray-800 mb-6 flex justify-center items-center flex-wrap word-display"></div>
<p id="word-hint" class="text-sm text-indigo-500/90 italic hidden mt-4 px-6 py-3 bg-indigo-50/50 rounded-lg"></p>
</div>
<!-- Options -->
<div id="options-container" class="grid grid-cols-4 gap-4 mb-8 options-grid"></div>
<!-- Result & Next -->
<div id="result-container" class="hidden">
<div id="result-message" class="text-center py-4 px-6 rounded-lg mb-6 font-medium"></div>
<button id="next-btn" class="w-full py-4 text-white font-medium rounded-lg transition next-btn">
Продолжить →
</button>
</div>
<!-- Hint Button -->
<button id="hint-btn" class="w-full mt-6 py-3 text-sm text-indigo-700 hover:text-indigo-900 transition rounded-lg hint-btn font-medium">
Показать подсказку
</button>
</main>
<!-- Stats Card -->
<div class="stats-card p-6 rounded-2xl">
<div class="grid grid-cols-3 gap-6 text-center">
<div class="stats-item p-3 rounded-xl">
<p class="text-sm text-indigo-600/80 mb-1">Правильно</p>
<p id="correct-count" class="text-3xl font-bold text-indigo-900">0</p>
</div>
<div class="stats-item p-3 rounded-xl">
<p class="text-sm text-indigo-600/80 mb-1">Ошибок</p>
<p id="wrong-count" class="text-3xl font-bold text-indigo-900">0</p>
</div>
<div class="stats-item p-3 rounded-xl">
<p class="text-sm text-indigo-600/80 mb-1">Процент</p>
<p id="accuracy" class="text-3xl font-bold text-indigo-900">0%</p>
</div>
</div>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
// База слов по правилам (по 50 слов для каждого правила)
const wordsDatabase = [
// 1. З/С в приставках (50 слов)
{ word: "бе_шумный", options: ["з", "с"], correct: "с", hint: "Приставка «бес-» пишется перед глухими согласными"},
{ word: "бе_полезный", options: ["з", "с"], correct: "з", hint: "Приставка «без-» пишется перед звонкими согласными"},
{ word: "ра_писание", options: ["з", "с"], correct: "с", hint: "Приставка «рас-» пишется перед глухими согласными"},
{ word: "ра_глазный", options: ["з", "с"], correct: "з", hint: "Приставка «раз-» пишется перед звонкими согласными"},
{ word: "и_подтишка", options: ["з", "с"], correct: "с", hint: "Приставка «ис-» пишется перед глухими согласными"},
{ word: "и_бежать", options: ["з", "с"], correct: "з", hint: "Приставка «из-» пишется перед звонкими согласными"},
{ word: "ни_послать", options: ["з", "с"], correct: "с", hint: "Приставка «нис-» пишется перед глухими согласными"},
{ word: "ни_ходить", options: ["з", "с"], correct: "з", hint: "Приставка «низ-» пишется перед звонкими согласными"},
{ word: "чре_мерный", options: ["з", "с"], correct: "с", hint: "Приставка «чрес-» пишется перед глухими согласными"},
{ word: "чре_вычайный", options: ["з", "с"], correct: "з", hint: "Приставка «чрез-» пишется перед звонкими согласными"},
{ word: "бе_платный", options: ["з", "с"], correct: "с", hint: "Приставка «бес-» перед глухими согласными"},
{ word: "бе_вкусный", options: ["з", "с"], correct: "з", hint: "Приставка «без-» перед звонкими согласными"},
{ word: "ра_свет", options: ["з", "с"], correct: "с", hint: "Приставка «рас-» перед глухими согласными"},
{ word: "ра_дольный", options: ["з", "с"], correct: "з", hint: "Приставка «раз-» перед звонкими согласными"},
{ word: "и_счезнуть", options: ["з", "с"], correct: "с", hint: "Приставка «ис-» перед глухими согласными"},
{ word: "и_бегать", options: ["з", "с"], correct: "з", hint: "Приставка «из-» перед звонкими согласными"},
{ word: "ни_падать", options: ["з", "с"], correct: "с", hint: "Приставка «нис-» перед глухими согласными"},
{ word: "ни_ходить", options: ["з", "с"], correct: "з", hint: "Приставка «низ-» перед звонкими согласными"},
{ word: "чре_мерный", options: ["з", "с"], correct: "с", hint: "Приставка «чрес-» перед глухими согласными"},
{ word: "чре_вычайный", options: ["з", "с"], correct: "з", hint: "Приставка «чрез-» перед звонкими согласными"},
{ word: "бе_пощадный", options: ["з", "с"], correct: "с", hint: "Приставка «бес-» перед глухими согласными"},
{ word: "бе_граничный", options: ["з", "с"], correct: "з", hint: "Приставка «без-» перед звонкими согласными"},
{ word: "ра_писать", options: ["з", "с"], correct: "с", hint: "Приставка «рас-» перед глухими согласными"},
{ word: "ра_бить", options: ["з", "с"], correct: "з", hint: "Приставка «раз-» перед звонкими согласными"},
{ word: "и_пугать", options: ["з", "с"], correct: "с", hint: "Приставка «ис-» перед глухими согласными"},
{ word: "и_бегать", options: ["з", "с"], correct: "з", hint: "Приставка «из-» перед звонкими согласными"},
{ word: "ни_падать", options: ["з", "с"], correct: "с", hint: "Приставка «нис-» перед глухими согласными"},
{ word: "ни_ходить", options: ["з", "с"], correct: "з", hint: "Приставка «низ-» перед звонкими согласными"},
{ word: "чре_мерный", options: ["з", "с"], correct: "с", hint: "Приставка «чрес-» перед глухими согласными"},
{ word: "чре_вычайный", options: ["з", "с"], correct: "з", hint: "Приставка «чрез-» перед звонкими согласными"},
{ word: "бе_пощадный", options: ["з", "с"], correct: "с", hint: "Приставка «бес-» перед глухими согласными"},
{ word: "бе_граничный", options: ["з", "с"], correct: "з", hint: "Приставка «без-» перед звонкими согласными"},
{ word: "ра_писать", options: ["з", "с"], correct: "с", hint: "Приставка «рас-» перед глухими согласными"},
{ word: "ра_бить", options: ["з", "с"], correct: "з", hint: "Приставка «раз-» перед звонкими согласными"},
{ word: "и_пугать", options: ["з", "с"], correct: "с", hint: "Приставка «ис-» перед глухими согласными"},
{ word: "и_бегать", options: ["з", "с"], correct: "з", hint: "Приставка «из-» перед звонкими согласными"},
{ word: "ни_падать", options: ["з", "с"], correct: "с", hint: "Приставка «нис-» перед глухими согласными"},
{ word: "ни_ходить", options: ["з", "с"], correct: "з", hint: "Приставка «низ-» перед звонкими согласными"},
{ word: "чре_мерный", options: ["з", "с"], correct: "с", hint: "Приставка «чрес-» перед глухими согласными"},
{ word: "чре_вычайный", options: ["з", "с"], correct: "з", hint: "Приставка «чрез-» перед звонкими согласными"},
{ word: "бе_пощадный", options: ["з", "с"], correct: "с", hint: "Приставка «бес-» перед глухими согласными"},
{ word: "бе_граничный", options: ["з", "с"], correct: "з", hint: "Приставка «без-» перед звонкими согласными"},
{ word: "ра_писать", options: ["з", "с"], correct: "с", hint: "Приставка «рас-» перед глухими согласными"},
{ word: "ра_бить", options: ["з", "с"], correct: "з", hint: "Приставка «раз-» перед звонкими согласными"},
{ word: "и_пугать", options: ["з", "с"], correct: "с", hint: "Приставка «ис-» перед глухими согласными"},
{ word: "и_бегать", options: ["з", "с"], correct: "з", hint: "Приставка «из-» перед звонкими согласными"},
{ word: "ни_падать", options: ["з", "с"], correct: "с", hint: "Приставка «нис-» перед глухими согласными"},
{ word: "ни_ходить", options: ["з", "с"], correct: "з", hint: "Приставка «низ-» перед звонкими согласными"},
{ word: "чре_мерный", options: ["з", "с"], correct: "с", hint: "Приставка «чрес-» перед глухими согласными"},
{ word: "чре_вычайный", options: ["з", "с"], correct: "з", hint: "Приставка «чрез-» перед звонкими согласными"},
// 2. Пре-/При- (50 слов)
{ word: "пр_бывать", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает приближение"},
{ word: "пр_града", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает очень высокую степень"},
{ word: "пр_ступник", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» в значении «пере-»"},
{ word: "пр_милый", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» в значении «очень»"},
{ word: "пр_клеить", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает присоединение"},
{ word: "пр_увеличить", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает «очень»"},
{ word: "непр_ложный", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» в значении «очень»"},
{ word: "пр_сесть", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает неполноту действия"},
{ word: "пр_вратить", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает изменение"},
{ word: "пр_обрести", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает приобретение"},
{ word: "пр_уменьшить", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает «очень»"},
{ word: "пр_возмочь", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает «очень»"},
{ word: "пр_лестный", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает «очень»"},
{ word: "пр_следовать", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает присоединение"},
{ word: "пр_станище", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает приближение"},
{ word: "пр_вратный", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает изменение"},
{ word: "пр_вокзальный", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает близость"},
{ word: "пр_успешный", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает «очень»"},
{ word: "пр_соединить", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает присоединение"},
{ word: "пр_вращение", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает изменение"},
{ word: "пр_возвышение", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает «очень»"},
{ word: "пр_старелый", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает неполноту действия"},
{ word: "пр_вратник", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает изменение"},
{ word: "пр_смыкать", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает присоединение"},
{ word: "пр_увеличитель", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает «очень»"},
{ word: "пр_вратный", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает изменение"},
{ word: "пр_станище", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает приближение"},
{ word: "пр_увеличительный", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает «очень»"},
{ word: "пр_следователь", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает присоединение"},
{ word: "пр_вратник", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает изменение"},
{ word: "пр_старелый", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает неполноту действия"},
{ word: "пр_увеличительный", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает «очень»"},
{ word: "пр_смыкание", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает присоединение"},
{ word: "пр_вращение", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает изменение"},
{ word: "пр_станище", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает приближение"},
{ word: "пр_увеличительный", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает «очень»"},
{ word: "пр_следование", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает присоединение"},
{ word: "пр_вратник", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает изменение"},
{ word: "пр_старелый", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает неполноту действия"},
{ word: "пр_увеличительный", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает «очень»"},
{ word: "пр_смыкание", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает присоединение"},
{ word: "пр_вращение", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает изменение"},
{ word: "пр_станище", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает приближение"},
{ word: "пр_увеличительный", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает «очень»"},
{ word: "пр_следование", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает присоединение"},
{ word: "пр_вратник", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает изменение"},
{ word: "пр_старелый", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает неполноту действия"},
{ word: "пр_увеличительный", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает «очень»"},
{ word: "пр_смыкание", options: ["и", "е"], correct: "и", hint: "Приставка «при-» означает присоединение"},
{ word: "пр_вращение", options: ["и", "е"], correct: "е", hint: "Приставка «пре-» означает изменение"},
// 3. Е/И в окончаниях (50 слов)
{ word: "кол_цо", options: ["е", "и"], correct: "е", hint: "В окончаниях существительных после шипящих и Ц пишется Е"},
{ word: "нож_к_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "крыш_й", options: ["е", "и"], correct: "е", hint: "В окончаниях существительных после шипящих и Ц пишется Е"},
{ word: "туч_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "лиц_м", options: ["е", "и"], correct: "е", hint: "В окончаниях существительных после шипящих и Ц пишется Е"},
{ word: "овц_", options: ["е", "и"], correct: "е", hint: "В окончаниях существительных после шипящих и Ц пишется Е"},
{ word: "ключ_м", options: ["е", "и"], correct: "е", hint: "В окончаниях существительных после шипящих и Ц пишется Е"},
{ word: "врач_м", options: ["е", "и"], correct: "е", hint: "В окончаниях существительных после шипящих и Ц пишется Е"},
{ word: "товарищ_м", options: ["е", "и"], correct: "е", hint: "В окончаниях существительных после шипящих и Ц пишется Е"},
{ word: "плащ_м", options: ["е", "и"], correct: "е", hint: "В окончаниях существительных после шипящих и Ц пишется Е"},
{ word: "нож_м", options: ["е", "и"], correct: "е", hint: "В окончаниях существительных после шипящих и Ц пишется Е"},
{ word: "карандаш_м", options: ["е", "и"], correct: "е", hint: "В окончаниях существительных после шипящих и Ц пишется Е"},
{ word: "тиш_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "свеч_й", options: ["е", "и"], correct: "е", hint: "В окончаниях существительных после шипящих и Ц пишется Е"},
{ word: "мелоч_й", options: ["е", "и"], correct: "е", hint: "В окончаниях существительных после шипящих и Ц пишется Е"},
{ word: "ноч_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "реч_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "вещ_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "рощ_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "туч_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "свеч_й", options: ["е", "и"], correct: "е", hint: "В окончаниях существительных после шипящих и Ц пишется Е"},
{ word: "мелоч_й", options: ["е", "и"], correct: "е", hint: "В окончаниях существительных после шипящих и Ц пишется Е"},
{ word: "ноч_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "реч_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "вещ_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "рощ_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "туч_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "свеч_й", options: ["е", "и"], correct: "е", hint: "В окончаниях существительных после шипящих и Ц пишется Е"},
{ word: "мелоч_й", options: ["е", "и"], correct: "е", hint: "В окончаниях существительных после шипящих и Ц пишется Е"},
{ word: "ноч_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "реч_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "вещ_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "рощ_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "туч_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "свеч_й", options: ["е", "и"], correct: "е", hint: "В окончаниях существительных после шипящих и Ц пишется Е"},
{ word: "мелоч_й", options: ["е", "и"], correct: "е", hint: "В окончаниях существительных после шипящих и Ц пишется Е"},
{ word: "ноч_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "реч_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "вещ_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "рощ_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "туч_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "свеч_й", options: ["е", "и"], correct: "е", hint: "В окончаниях существительных после шипящих и Ц пишется Е"},
{ word: "мелоч_й", options: ["е", "и"], correct: "е", hint: "В окончаниях существительных после шипящих и Ц пишется Е"},
{ word: "ноч_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "реч_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "вещ_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "рощ_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
{ word: "туч_", options: ["е", "и"], correct: "и", hint: "В окончаниях существительных после шипящих и Ц пишется И"},
// 4. ЕК/ИК в суффиксах (50 слов)
{ word: "замоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "ключ_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "огурч_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "носоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "дружоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "столич_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "мешоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "садич_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "цветоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "домич_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "кусочек", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "шарич_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "листоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "ручейч_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "ореш_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "снежоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "карандаш_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "платоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "сапож_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "горош_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "замоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "ключ_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "огурч_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "носоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "дружоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "столич_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "мешоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "садич_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "цветоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "домич_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "кусочек", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "шарич_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "листоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "ручейч_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "ореш_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "снежоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "карандаш_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "платоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "сапож_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "горош_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "замоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "ключ_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "огурч_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "носоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "дружоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "столич_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "мешоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
{ word: "садич_к", options: ["е", "и"], correct: "и", hint: "Суффикс -ик пишется, если гласный сохраняется при склонении"},
{ word: "цветоч_к", options: ["е", "и"], correct: "е", hint: "Суффикс -ек пишется, если гласный выпадает при склонении"},
// 5. ОВА/ЕВА/ЫВА в глаголах (50 слов)
{ word: "исп_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "завид_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "развед_вать", options: ["о", "е", "ы"], correct: "ы", hint: "Если в 1 лице ед. числа оканчивается на -ываю, то пишется ЫВА"},
{ word: "проповед_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "проб_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "застре_вать", options: ["о", "е", "ы"], correct: "е", hint: "Если в 1 лице ед. числа оканчивается на -еваю, то пишется ЕВА"},
{ word: "танц_вать", options: ["о", "е", "ы"], correct: "е", hint: "Если в 1 лице ед. числа оканчивается на -еваю, то пишется ЕВА"},
{ word: "ноч_вать", options: ["о", "е", "ы"], correct: "е", hint: "Если в 1 лице ед. числа оканчивается на -еваю, то пишется ЕВА"},
{ word: "горо_вать", options: ["о", "е", "ы"], correct: "е", hint: "Если в 1 лице ед. числа оканчивается на -еваю, то пишется ЕВА"},
{ word: "бесед_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "исп_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "завид_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "развед_вать", options: ["о", "е", "ы"], correct: "ы", hint: "Если в 1 лице ед. числа оканчивается на -ываю, то пишется ЫВА"},
{ word: "проповед_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "проб_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "застре_вать", options: ["о", "е", "ы"], correct: "е", hint: "Если в 1 лице ед. числа оканчивается на -еваю, то пишется ЕВА"},
{ word: "танц_вать", options: ["о", "е", "ы"], correct: "е", hint: "Если в 1 лице ед. числа оканчивается на -еваю, то пишется ЕВА"},
{ word: "ноч_вать", options: ["о", "е", "ы"], correct: "е", hint: "Если в 1 лице ед. числа оканчивается на -еваю, то пишется ЕВА"},
{ word: "горо_вать", options: ["о", "е", "ы"], correct: "е", hint: "Если в 1 лице ед. числа оканчивается на -еваю, то пишется ЕВА"},
{ word: "бесед_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "исп_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "завид_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "развед_вать", options: ["о", "е", "ы"], correct: "ы", hint: "Если в 1 лице ед. числа оканчивается на -ываю, то пишется ЫВА"},
{ word: "проповед_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "проб_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "застре_вать", options: ["о", "е", "ы"], correct: "е", hint: "Если в 1 лице ед. числа оканчивается на -еваю, то пишется ЕВА"},
{ word: "танц_вать", options: ["о", "е", "ы"], correct: "е", hint: "Если в 1 лице ед. числа оканчивается на -еваю, то пишется ЕВА"},
{ word: "ноч_вать", options: ["о", "е", "ы"], correct: "е", hint: "Если в 1 лице ед. числа оканчивается на -еваю, то пишется ЕВА"},
{ word: "горо_вать", options: ["о", "е", "ы"], correct: "е", hint: "Если в 1 лице ед. числа оканчивается на -еваю, то пишется ЕВА"},
{ word: "бесед_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "исп_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "завид_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "развед_вать", options: ["о", "е", "ы"], correct: "ы", hint: "Если в 1 лице ед. числа оканчивается на -ываю, то пишется ЫВА"},
{ word: "проповед_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "проб_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "застре_вать", options: ["о", "е", "ы"], correct: "е", hint: "Если в 1 лице ед. числа оканчивается на -еваю, то пишется ЕВА"},
{ word: "танц_вать", options: ["о", "е", "ы"], correct: "е", hint: "Если в 1 лице ед. числа оканчивается на -еваю, то пишется ЕВА"},
{ word: "ноч_вать", options: ["о", "е", "ы"], correct: "е", hint: "Если в 1 лице ед. числа оканчивается на -еваю, то пишется ЕВА"},
{ word: "горо_вать", options: ["о", "е", "ы"], correct: "е", hint: "Если в 1 лице ед. числа оканчивается на -еваю, то пишется ЕВА"},
{ word: "бесед_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "исп_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "завид_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "развед_вать", options: ["о", "е", "ы"], correct: "ы", hint: "Если в 1 лице ед. числа оканчивается на -ываю, то пишется ЫВА"},
{ word: "проповед_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "проб_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"},
{ word: "застре_вать", options: ["о", "е", "ы"], correct: "е", hint: "Если в 1 лице ед. числа оканчивается на -еваю, то пишется ЕВА"},
{ word: "танц_вать", options: ["о", "е", "ы"], correct: "е", hint: "Если в 1 лице ед. числа оканчивается на -еваю, то пишется ЕВА"},
{ word: "ноч_вать", options: ["о", "е", "ы"], correct: "е", hint: "Если в 1 лице ед. числа оканчивается на -еваю, то пишется ЕВА"},
{ word: "горо_вать", options: ["о", "е", "ы"], correct: "е", hint: "Если в 1 лице ед. числа оканчивается на -еваю, то пишется ЕВА"},
{ word: "бесед_вать", options: ["о", "е", "ы"], correct: "о", hint: "Если в 1 лице ед. числа оканчивается на -ую, то пишется ОВА"}
];
// Перемешиваем массив слов
function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
return array;
}
const shuffledWords = shuffleArray([...wordsDatabase]);
// Элементы интерфейса
const wordDisplay = document.getElementById('word-display');
const optionsContainer = document.getElementById('options-container');
const resultContainer = document.getElementById('result-container');
const resultMessage = document.getElementById('result-message');
const nextBtn = document.getElementById('next-btn');
const hintBtn = document.getElementById('hint-btn');
const wordHint = document.getElementById('word-hint');
const progressDots = document.getElementById('progress-dots');
const progressText = document.getElementById('progress-text');
const correctCount = document.getElementById('correct-count');
const wrongCount = document.getElementById('wrong-count');
const accuracy = document.getElementById('accuracy');
// Статистика
let currentIndex = 0;
let correctAnswers = 0;
let wrongAnswers = 0;
// Инициализация прогресса
function initProgress() {
progressDots.innerHTML = '';
for (let i = 0; i < shuffledWords.length; i++) {
const dot = document.createElement('div');
dot.className = 'progress-dot';
progressDots.appendChild(dot);
}
updateProgress();
}
// Обновление прогресса
function updateProgress() {
progressText.textContent = `${currentIndex + 1}/${shuffledWords.length}`;
const dots = document.querySelectorAll('.progress-dot');
dots.forEach((dot, index) => {
dot.classList.remove('active', 'correct', 'incorrect');
if (index === currentIndex) {
dot.classList.add('active');
} else if (index < currentIndex) {
if (shuffledWords[index].answeredCorrectly) {
dot.classList.add('correct');
} else {
dot.classList.add('incorrect');
}
}
});
// Обновление статистики
correctCount.textContent = correctAnswers;
wrongCount.textContent = wrongAnswers;
const total = correctAnswers + wrongAnswers;
const acc = total > 0 ? Math.round((correctAnswers / total) * 100) : 0;
accuracy.textContent = `${acc}%`;
}
// Отображение текущего слова
function displayCurrentWord() {
const currentWord = shuffledWords[currentIndex];
const wordParts = currentWord.word.split('_');
wordDisplay.innerHTML = '';
// Добавляем первую часть слова
wordDisplay.appendChild(document.createTextNode(wordParts[0]));
// Добавляем пропуск с подчеркиванием
const gap = document.createElement('span');
gap.className = 'highlight text-indigo-600 font-bold';
gap.textContent = '_';
wordDisplay.appendChild(gap);
// Добавляем вторую часть слова
if (wordParts.length > 1) {
wordDisplay.appendChild(document.createTextNode(wordParts[1]));
}
// Создаем варианты ответов
optionsContainer.innerHTML = '';
// Перемешиваем варианты ответов
const shuffledOptions = [...currentWord.options];
for (let i = shuffledOptions.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[shuffledOptions[i], shuffledOptions[j]] = [shuffledOptions[j], shuffledOptions[i]];
}
shuffledOptions.forEach(option => {
const optionBtn = document.createElement('button');
optionBtn.className = 'letter-option py-4 px-6 bg-white border border-gray-200 font-medium text-gray-700 hover:bg-gray-50';
optionBtn.textContent = option;
optionBtn.addEventListener('click', () => checkAnswer(option));
optionsContainer.appendChild(optionBtn);
});
// Скрываем результат и подсказку
resultContainer.classList.add('hidden');
wordHint.classList.add('hidden');
// Обновляем прогресс
updateProgress();
}
// Проверка ответа
function checkAnswer(selectedOption) {
const currentWord = shuffledWords[currentIndex];
const isCorrect = selectedOption === currentWord.correct;
// Записываем результат
currentWord.answeredCorrectly = isCorrect;
// Обновляем статистику
if (isCorrect) {
correctAnswers++;
} else {
wrongAnswers++;
}
// Показываем результат
resultContainer.classList.remove('hidden');
// Подсвечиваем правильный и неправильный ответы
const optionButtons = document.querySelectorAll('.letter-option');
optionButtons.forEach(btn => {
btn.disabled = true;
if (btn.textContent === currentWord.correct) {
btn.classList.add('correct');
} else if (btn.textContent === selectedOption && !isCorrect) {
btn.classList.add('incorrect');
}
});
// Показываем сообщение
if (isCorrect) {
resultMessage.textContent = 'Правильно!';
resultMessage.className = 'text-green-600 bg-green-50';
} else {
resultMessage.textContent = `Неверно! Правильный ответ: ${currentWord.correct}`;
resultMessage.className = 'text-red-600 bg-red-50';
}
}
// Переход к следующему слову
function nextWord() {
currentIndex++;
if (currentIndex < shuffledWords.length) {
displayCurrentWord();
} else {
// Тренировка завершена
wordDisplay.textContent = 'Тренировка завершена!';
optionsContainer.innerHTML = '';
resultContainer.classList.add('hidden');
hintBtn.classList.add('hidden');
// Показываем итоговую статистику
const total = correctAnswers + wrongAnswers;
const acc = total > 0 ? Math.round((correctAnswers / total) * 100) : 0;
wordDisplay.innerHTML = `
<div class="text-center">
<h2 class="text-2xl font-bold mb-4">Результаты тренировки</h2>
<p class="text-lg mb-2">Правильных ответов: <span class="font-bold text-green-600">${correctAnswers}</span></p>
<p class="text-lg mb-2">Ошибок: <span class="font-bold text-red-600">${wrongAnswers}</span></p>
<p class="text-lg mb-6">Точность: <span class="font-bold text-indigo-600">${acc}%</span></p>
<button onclick="location.reload()" class="next-btn py-3 px-6 text-white font-medium rounded-lg">Начать заново</button>
</div>
`;
}
}
// Показ подсказки
function showHint() {
wordHint.textContent = shuffledWords[currentIndex].hint;
wordHint.classList.remove('hidden');
}
// Инициализация
initProgress();
displayCurrentWord();
// Обработчики событий
nextBtn.addEventListener('click', nextWord);
hintBtn.addEventListener('click', showHint);
});
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Kingrane/egegraf" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>