Сегодня покажу, как сделать настоящую мини-игру змейку прямо в терминале — с управлением, движением и логикой столкновений.
В этом посте:
• Работа с real-time input через readline;
• Отрисовка ASCII-анимации в консоли;
• Движение, рост и завершение игры при коллизии.
Прекрасная практика массивов, циклов, координат и работы с событиями.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍11❤6
Иногда
fetch() или любой промис может зависнуть, а код просто ждёт.Promise.race(), как вариант решения: запускает несколько промисов и возвращает результат первого завершившегося:const withTimeout = (ms, task) =>
Promise.race([
task,
new Promise((_, reject) =>
setTimeout(() => reject(new Error('Timeout')), ms)
)
]);
Теперь можно ограничить жизнь любого промиса:
await withTimeout(3000, fetch('/api/data'));Если запрос не успеет за 3 секунды, вылетит
Error('Timeout'), и код не будет висеть.Также можно добавить отмену при таймауте через
AbortController:const fetchWithTimeout = (url, ms) => {
const controller = new AbortController();
const timer = setTimeout(() => controller.abort(), ms);
return fetch(url, { signal: controller.signal })
.finally(() => clearTimeout(timer));
};Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍8❤6
Создаём консольную утилиту, которая превращает обычный список товаров в аккуратный чек с подсчётом скидок, налогов и итоговой суммы.
В этой задаче:
• Реализуем обработку пользовательского ввода через readline;
• Формируем корзину и рассчитываем скидки, налоги и итог;
• Выводим красиво оформленный чек, как в настоящем магазине.
Проект учит продумывать структуру, обработку ошибок и удобство вывода для пользователя.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥11🤝5❤4
Проверяем, открыта ли страница по HTTPS!
Безопасное соединение — важное условие для работы многих Web API. Большинство таких API требуют
Проверить протокол можно так:
Если нужно принудительно перенаправить пользователя на
Также можно быстро вывести текущий адрес страницы:
🔥 Такой пример полезен для практики работы с объектом location, управления навигацией и понимания поведения редиректов в браузере.
📣 JS Ready | #практика
Безопасное соединение — важное условие для работы многих Web API. Большинство таких API требуют
secure context — то есть HTTPS или http://localhost.Проверить протокол можно так:
const isSecure = window.location.protocol === "https:";
console.log("Безопасное соединение:", isSecure);
Если нужно принудительно перенаправить пользователя на
HTTPS:if (window.location.protocol !== "https:") {
const { host, pathname, search, hash } = window.location;
window.location.replace(`https://${host}${pathname}${search}${hash}`);
}Также можно быстро вывести текущий адрес страницы:
console.log("Текущий адрес:", window.location.href);Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤6🤝6
Здесь собраны основные методы для выбора, чтения, предпросмотра и сохранения файлов. Эти инструменты используются при создании загрузчиков, предпросмотров изображений и экспорта данных. File API предоставляет набор средств для клиентской обработки файлов.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍9❤7
👍17🔥7❤6