Как задать спрайту вопрос и получить ответ от игрока в Scratch?
Делаю викторину, где кот спрашивает, а игрок печатает ответ. Как в скретче спросить что-то у игрока и проверить, что он написал?
2 ответа
Для вопросов игроку есть блок «спросить … и ждать» из голубой полки «Сенсоры». 💬 Он показывает окошко для ввода внизу экрана, и игра ждёт, пока игрок напечатает ответ.
А то, что игрок написал, попадает в особый блок «ответ» (тоже в «Сенсорах»).
Пример — кот спрашивает имя:
когда нажат зелёный флажок
спросить «Как тебя зовут?» и ждать
сказать (соединить «Привет, » (ответ)) 2 секунд
Кот спросит имя, ты впишешь, например, «Маша», и он скажет «Привет, Маша!». 😊
Теперь викторина с проверкой — нужен блок «если … иначе» и сравнение из «Операторов»:
когда нажат зелёный флажок
спросить «Сколько будет 2 плюс 2?» и ждать
если <ответ = 4> то
сказать «Правильно!» 2 секунд
иначе
сказать «Неверно, попробуй ещё» 2 секунд
Как это работает:
- спросить … и ждать — показывает вопрос и ждёт ввода.
- ответ — хранит то, что напечатал игрок.
- если ответ = 4 — сравниваем ответ с правильным.
Частая ошибка: проверять ответ ещё до блока «спросить». Сначала спрашиваем, потом сравниваем «ответ» — порядок важен, ведь Scratch читает скрипт сверху вниз. ✅
Для викторины из многих вопросов используй переменную «Очки» и прибавляй балл за каждый верный ответ. 🏆
Маленькая, но частая засада: при сравнении текста Scratch не различает большие и маленькие буквы, но различает лишние пробелы. Если игрок написал «4 » с пробелом, сравнение «ответ = 4» может не сойтись.
Для чисел это редко мешает, а вот для слов лучше задавать вопросы так, чтобы ответ был коротким и понятным («да/нет», одно слово). Так викторина будет честной. 🙂