Однажды воспитательнице в детском саду, куда ходил маленький Серёнька, надоело рассказывать сказки. И она решила устроить конкурс.
— Дети, — громко сказала воспитательница после обеда, когда малыши уселись на свои горшки в большой летней беседе.— Я придумала новую игру. Теперь вы сами по очереди будете выступать со сказками. А потом мы выберем победителя, и он получит награду.
— Да? А какую? — заволновались дети.
— Лучшего сказочника я сама буду раскачивать на наших качелях! А вы станете хлопать в ладоши, и никто не будет завидовать, потому что после этого мы все пойдём пить чай с ватрушками.
Награда была хорошей, и всем очень хотелось отличиться. Малыши стали наперебой проситься выступить, а так как их в группе было много, конкурс занял не один день.
Серёнька был не самым бойким среди мальчишек, и потому сидел на своём горшке, сунул палец в рот и слушал чужие рассказы, пока очередь сама до него не дошла.
Свою сказку он давно приготовил. Это была старая басня про ворону и лисицу: «Вороне где-то Бог послал кусочек сыру…» — ну и дальше. Дома у него было много книжек, но эта басня нравилась ему больше других.
Правда, мама такого выбора вчера не одобрила:
— У сказки обязательно должен быть добрый конец, иначе это не сказка. А что здесь! Хитрая лисица нахвалила глупую ворону и отняла сыр обманом. Где ж тут доброе? Подбери что-нибудь другое, а эту басню лучше не рассказывай.
Серёнька стал перебирать книжки, но обнаружил, что все добрые сказки — длинные, и он не сможет рассказать их наизусть. А те, что помнил, оказались, действительно, не очень добрыми.
Суд над Сказками: Лабиринт Смыслов
Помогите Серёньке разобраться в делах. Перетащите ярлык с названием сказки на соответствующее уголовное досье.
Уголовные дела:
Дело №1
Умышленное убийство с особой жестокостью, совершённое группой лиц по предварительному сговору, и сокрытие улик (вскрытие брюха, зашивание камней живьём).
Перетащите сказку сюда
Дело №2
Многократное нарушение трудового законодательства, незаконное лишение свободы и принуждение к рабскому труду сироты со стороны мачехи.
Перетащите сказку сюда
Дело №3
Мошенничество в особо крупных размерах с использованием методов социальной инженерии и лести. Бесконтактное похищение сыра.
Перетащите сказку сюда
Дело №4
Бродяжничество, незаконный побег из семьи несовершенноленного объекта округлой формы, повлекший попадание в пасть к хищнику.
Перетащите сказку сюда
Дело №5
Организация незаконного вооружённого формирования, повлекшая за собой массовое уничтожение хрупкой жилой инфраструктуры (солома, ветки).
Перетащите сказку сюда
Дело №6
Тяжёлая форма эксплуатации деревянной куклы, организация подпольного кукольного театра, сопряжённая с избиениями артистов и угрозами сжечь их в очаге.
Перетащите сказку сюда
Дело №7
Нарушение техники безопасности на швейном производстве, повлёкшее массовую кому сотрудников и изоляцию объекта колючей растительностью на 100 лет.
Перетащите сказку сюда
Ярлыки сказок:
«Ворона и Лисица»
«Золушка»
«Приключения Буратино»
«Три поросёнка»
«Kрасная Шапочка»
«Спящая красавица»
«Колобок»
Все дела распределены!
Все эти сюжеты полны несправедливости. Но какое из них Серёнька переживает как личную обиду? Какое дело заставило его запутаться в лабиринте мыслей?
Нет, эта сказка расстроила его, но не она сломала его веру в справедливость. Подумайте, какую сказку он готовил для выступления?
Победа! Вы вышли из лабиринта
Правильно. Серёнька отказывается принимать этот циничный приговор истории. Он решает стать не просто читателем, а судьёй и автором. Он готов переписать финал.
Он снова набрал воздуха…
И тут будто превратился Серёнька в воздушный шарик на тонкой ниточке, сказка полилась сама собой. Только это была уже не совсем басня про ворону и лисицу, точнее, совсем не та басня, которую написал дедушка Крылов.
— Вороне где-то Бог послал кусочек сыру, — звучным голосом начал Серёнька. — На ель ворона взгромоздилась, позавтракать было совсем уж собралась, да позадумалась, а сыр во рту держала. На ту беду лиса близёхонько бежала. Почуяла сырный запах, остановилась и говорит: «Ой, какая птица! Какие пёрышки, какой носок! А ангельский, должно быть, голосок! Спой, светик, не стыдись!»
Малыши на горшках затаили дыхание. Воспитательница одобрительно кивала, ожидая привычной развязки. Но Серёнька неожиданно хитро прищурился.
— Ворона послушала-послушала, — продолжал он, — прижала сыр лапой к ветке, да как крикнет: «Kар-р-р! Знаю я тебя, рыжая плутовка! Прошлый раз ты мою бабушку так обманула, а со мной этот номер не пройдёт!» Лиса от неожиданности так и села на хвост. А ворона отломила половину сыра, бросила ей вниз и говорит: «Ладно, не плачь, я сегодня добрая. На, поешь, только больше никого не обманывай!» Лиса сыр поймала, устыдилась, спасибо сказала и убежала в лес. И жили они после этого дружно.
В беседке на секунду повисла тишина, а потом малыши дружно захлопали в ладоши.
(function() {
function initQuestGame() {
const startBtn = document.getElementById('start-quest-btn');
const questWrapper = document.getElementById('quest-wrapper');
const labels = document.querySelectorAll('.quest-label');
const dropZones = document.querySelectorAll('.drop-zone');
const gameScreen = document.getElementById('quest-game-screen');
const finalScreen = document.getElementById('quest-final-screen');
const winScreen = document.getElementById('quest-win-screen');
const finalChoices = document.querySelectorAll('#final-choices .final-btn');
const closeQuestBtn = document.getElementById('close-quest-btn');
const bookContinuation = document.getElementById('book-continuation');
const finalErrors = document.getElementById('final-error');
let matchedCount = 0;
const totalMatches = 7;
if (startBtn && questWrapper) {
function openTheGame(e) {
if (e) e.preventDefault();
questWrapper.style.setProperty('display', 'block', 'important');
startBtn.parentElement.style.setProperty('display', 'none', 'important');
questWrapper.scrollIntoView({ behavior: 'smooth' });
}
// Стираем старые обработчики, если они зависли
startBtn.replaceWith(startBtn.cloneNode(true));
const newStartBtn = document.getElementById('start-quest-btn');
newStartBtn.addEventListener('click', openTheGame);
newStartBtn.addEventListener('touchstart', openTheGame, {passive: false});
}
// ДЛЯ ПК (DRAG & DROP)
labels.forEach(label => {
label.addEventListener('dragstart', (e) => {
e.dataTransfer.setData('text/plain', e.target.id);
});
});
// ДЛЯ ТЕЛЕФОНОВ
let draggedElement = null;
let startX = 0;
let startY = 0;
labels.forEach(label => {
label.addEventListener('touchstart', function(e) {
if (this.getAttribute('draggable') === 'false') return;
draggedElement = this;
this.style.opacity = '0.6';
this.style.position = 'relative';
this.style.zIndex = '9999';
let touch = e.touches[0];
startX = touch.clientX;
startY = touch.clientY;
}, { passive: true });
label.addEventListener('touchmove', function(e) {
if (!draggedElement) return;
let touch = e.touches[0];
let moveX = touch.clientX - startX;
let moveY = touch.clientY - startY;
draggedElement.style.left = moveX + 'px';
draggedElement.style.top = moveY + 'px';
}, { passive: true });
label.addEventListener('touchend', function(e) {
if (!draggedElement) return;
draggedElement.style.opacity = '1';
draggedElement.style.left = '0px';
draggedElement.style.top = '0px';
draggedElement.style.position = 'static';
let touch = e.changedTouches[0];
let dropTarget = document.elementFromPoint(touch.clientX, touch.clientY);
let zone = dropTarget ? dropTarget.closest('.drop-zone') : null;
if (zone) {
handleDrop(draggedElement.id, zone);
}
draggedElement = null;
});
});
function handleDrop(labelId, zone) {
const labelElement = document.getElementById(labelId);
const currentCase = zone.closest('.quest-case');
const expectedMatch = currentCase.getAttribute('data-match');
if (labelId === expectedMatch && labelElement) {
zone.innerHTML = '';
zone.appendChild(labelElement);
labelElement.setAttribute('draggable', 'false');
labelElement.style.cursor = 'default';
labelElement.style.left = '0px';
labelElement.style.top = '0px';
currentCase.style.background = '#e8f8f5';
currentCase.style.borderColor = '#2ecc71';
matchedCount++;
if (matchedCount === totalMatches) {
setTimeout(() => {
gameScreen.style.setProperty('display', 'none', 'important');
finalScreen.style.setProperty('display', 'block', 'important');
finalScreen.scrollIntoView({ behavior: 'smooth' });
}, 400);
}
} else {
currentCase.style.borderColor = '#e74c3c';
setTimeout(() => { currentCase.style.borderColor = '#ddd'; }, 500);
}
}
dropZones.forEach(zone => {
zone.addEventListener('dragover', (e) => e.preventDefault());
zone.addEventListener('drop', (e) => {
e.preventDefault();
const labelId = e.dataTransfer.getData('text/plain');
handleDrop(labelId, zone);
});
});
finalChoices.forEach(btn => {
btn.addEventListener('click', function(e) {
e.preventDefault();
if (this.id === 'correct-final-btn') {
finalScreen.style.setProperty('display', 'none', 'important');
winScreen.style.setProperty('display', 'block', 'important');
winScreen.scrollIntoView({ behavior: 'smooth' });
} else {
if (finalErrors) finalErrors.style.setProperty('display', 'block', 'important');
}
});
});
if (closeQuestBtn && bookContinuation) {
closeQuestBtn.addEventListener('click', function(e) {
e.preventDefault();
bookContinuation.style.setProperty('display', 'block', 'important');
winScreen.style.setProperty('display', 'none', 'important');
bookContinuation.scrollIntoView({ behavior: 'smooth' });
});
}
}
// Умный запуск: если шаблон грузит модуль с задержкой, проверяем наличие кнопки каждые 100мс
let checkExist = setInterval(function() {
if (document.getElementById('start-quest-btn')) {
initQuestGame();
clearInterval(checkExist);
}
}, 100);
})();
Весь вечер он блуждал, как в лабиринте, и наконец в отчаянии пожаловался маме:
— Ты меня сбила! Я теперь не знаю, что говорить…
— Не переживай, у тебя всё получится. Почему бы не рассказать про Колобка? Хотя, пожалуй, про Колобка не стоит… Или про трёх поросят? Тебе же нравится про трёх поросят.
— Не нравится. Мне не нравится. Два из них — лентяи, а третий где кирпичи для своего домика взял? Где он их взял? Купил?
— Что уж ты так рассердился, — оторвалась от вязания бабушка. — Да расскажи ты им про репку, как она выросла большая-пребольшая, и дедка её тянул-тянул, вытянуть не мог… Мышка прибежала, хвостиком махнула — репка выдернулась, а в ней уже целый теремок живёт…
— Мам, не путай ты его. Всё смешала, — укоризненно сказала мама, а Серёнька махнул рукой на них обеих, ничего не ответил, повернулся и пошёл спать.
— Итак, кто у нас выступает сегодня? — спросила на следующий день воспитательница, когда малыши уселись в беседке. Все посмотрели на Серёньку.
Он вышел со своим горшком на середину, набрал воздуха и только собрался произнести первые слова старой доброй сказки про репку, как воспитательница с приятной улыбкой сказала:
— Ты у нас сегодня один, поэтому рассказывай всё подробно, по порядку, не спеши.
Ну зачем она это сказала. Конечно, вся басня в голове сразу рассыпалась. Но публика ждала, назад ходу не было, и ничего не оставалось, как заговорить хоть о чём-нибудь. Он снова набрал воздуха…
И тут будто превратился Серёнька в воздушный шарик на тонкой ниточке, сказка полилась сама собой.