Играй и колдуй с числами!
Представляем волшебный скрипт для любителей головоломок и терминальных приключений! Эта игра превращает угадывание чисел в захватывающее заклинание с цветными эффектами и магическими подсказками.
Как работает игра?
После запуска скрипта вам явится загадочное сообщение:
===
Магическая угадайка ===
Ваша задача — угадать число за минимальное количество попыток. Каждая ошибка приближает к разгадке через магические подсказки:
Пламя обжигает! — ошибка до 5
Искры летят! — до 10
Тепло волшебства — до 20
Ветер перемен — до 30
Ледяные руны — до 40
Холод древних чар — больше 40
Как запустить игру?
- Скопируйте код в файл
magic_guess.sh
- Сделайте его исполняемым:
chmod +x magic_guess.sh
- Запустите:
./magic_guess.sh
Механика игры
Пример диалога с программой:
Твое заклинание (число): 50
Ветер перемен ↑ Сила растёт!
Твое заклинание (число): 75
Ледяные руны ↓ Магия угасает...
Твое заклинание (число): 63
Поздравляю! Ты угадал за 3 попыток!
Магия сработала!
Визуальное оформление
Используется магия ANSI-цветов для создания атмосферы:
RED
для критических ошибок
BLUE
для холодных подсказок
YELLOW
для теплых угадываний
Цвета задаются через tput
, что делает игру живой даже в текстовом интерфейсе.
Секрет успеха
Чтобы быстро победить, следуйте этим советам:
- Начните с середины диапазона (50)
- Используйте подсказки о направлении (↑↑ или ↓↓)
- Запоминайте реакцию “ветра перемен” и “ледяных рун”
Как улучшить игру?
Попробуйте добавить:
Таймер на угадывание
Статистику попыток
Расширенные заклинания (например, /hint для подсказки)
Режим сложности
Готов к магическому приключению?
Скачайте скрипт и начните колдовать с числами! Убедитесь, что ваш терминал поддерживает ANSI-цвета для полного погружения в атмосферу волшебства.
#!/bin/bash
# Настройки цветов
RED=$(tput setaf 1)
GREEN=$(tput setaf 2)
YELLOW=$(tput setaf 3)
BLUE=$(tput setaf 4)
MAGENTA=$(tput setaf 5)
CYAN=$(tput setaf 6)
RESET=$(tput sgr0)
function get_hint() {
local diff=$1
diff=${diff#-} # Абсолютное значение
if (( diff == 0 )); then
echo "${GREEN}
Точная магия!${RESET}"
elif (( diff <= 5 )); then
echo "${RED}
Пламя обжигает!${RESET}"
elif (( diff <= 10 )); then
echo "${MAGENTA}
Искры летят!${RESET}"
elif (( diff <= 20 )); then
echo "${YELLOW}
Тепло волшебства${RESET}"
elif (( diff <= 30 )); then
echo "${CYAN}
Ветер перемен${RESET}"
elif (( diff <= 40 )); then
echo "${BLUE}
Ледяные руны${RESET}"
else
echo "${BLUE}
Холод древних чар${RESET}"
fi
}
echo -e "${MAGENTA}===
Магическая угадайка ===${RESET}"
echo -e "${CYAN}Привет, волшебник! Я загадал число от 1 до 100...${RESET}"
target=$((RANDOM % 100 + 1))
attempts=0
last_diff=0
while true; do
read -p "Твое заклинание (число): " guess
if [[ "$guess" == "exit" ]]; then
echo -e "${YELLOW}
Заклинание рассеяно! Число было: $target${RESET}"
exit
fi
if ! [[ "$guess" =~ ^[0-9]+$ ]] || (( guess < 1 )) || (( guess > 100 )); then
echo -e "${YELLOW}
Только цифры в свитке, маг!${RESET}"
continue
fi
attempts=$((attempts + 1))
diff=$((guess - target))
hint=$(get_hint $diff)
if (( diff == 0 )); then
echo -e "${GREEN}
Поздравляю! Ты угадал за $attempts попыток!${RESET}"
echo -e "${MAGENTA}
Магия сработала!${RESET}"
break
else
echo -n "$hint "
# Подсказка о направлении
if (( last_diff != 0 )); then
if (( ${diff#-} < ${last_diff#-} )); then
echo -e "${GREEN}↑ Сила растёт!${RESET}"
elif (( ${diff#-} > ${last_diff#-} )); then
echo -e "${BLUE}↓ Магия угасает...${RESET}"
fi
fi
last_diff=$diff
fi
done