Вы можете бросать кости в терминале Linux, вот как
Перейти по ссылкам
- Зачем бросать кости в терминале?
- Метод 1: Установка rolldice на Linux
- Метод 2: Использование команды shuf
- Метод 3: Использование Bash с $RANDOM
Обычно мы думаем о терминале как о чем-то чисто утилитарном — настройка Linux, установка обновлений или выполнение рабочих команд. И для большинства людей на этом всё и заканчивается. Но терминал может быть более универсальным, чем вы ожидаете. Один удивительно забавный вариант использования? Бросание кубиков. Да, ваш Linux-терминал может служить цифровым генератором кубиков.
Зачем бросать кости в терминале?
Теперь вы, вероятно, задаетесь вопросом: зачем бросать кости в терминале, если у нас уже есть настоящие кости? Справедливый вопрос! Кости действительно являются сердцем настольных игр, таких как «Монополия», «Катан» и «Подземелья и Драконы». Они определяют победы, поражения и иногда даже вызывают горячие споры.
Но несмотря на то, что настоящие кости имеют своё очарование, с ними также связаны множество проблем. Они катятся под диван, исчезают именно тогда, когда они нужны, или подпрыгивают по комнате посреди игры. А дешёвые наборы могут быть небалансированными, что может исказить результаты и привести к неудачной серии.
Кроме того, в ролевых играх, где вы можете бросать сразу горсть кубиков, отслеживать числа может быть настоящей проблемой; вместо того чтобы наслаждаться игрой, все сосредоточены на подсчете чисел в голове, чтобы убедиться в правильности расчета. А специальные кубики, например огромный d100, еще хуже. Они громоздкие, катятся бесконечно и не желают останавливаться на одной грани. Кроме того, их довольно трудно читать.
Терминал аккуратно обходит все это. Нужен двадцатигранный кубик? Или даже d100? Ваш терминал может мгновенно бросить любой кубик, независимо от того, насколько он редок. И вам никогда не придется залезать под диван, беспокоиться о предвзятости и вы всегда будете иметь доступ, будь вы дома, в путешествии или на работе. Просто откройте терминал, и можно начинать.
Помимо практичности, бросание кубиков в терминале может быть также забавным трюком, чтобы похвастаться перед друзьями. Никаких сайтов, никаких приложений, просто быстрая команда, и ваши друзья будут впечатлены. Еще лучше, это игривый, без давления способ привыкнуть к терминалу, делая при этом что-то практичное и веселое. Кто знает, возможно, вы даже создадите свою собственную игру на базе терминала!
Метод 1: Установка rolldice на Linux
Давайте начнем с броска наших кубиков в терминале. Для первого метода мы загрузим инструмент под названием rolldice. Он поддерживает стандартную нотацию RPG для кубиков (NdM, например, 3d6+2) и позволяет легко бросать как один кубик, так и несколько, а также применять модификаторы.
Установка rolldice
Установка будет зависеть от дистрибутива Linux, который вы используете.
Для Debian/Ubuntu
sudo apt install rolldice
Если у вас Fedora/RHEL, установите rolldice, выполнив:
sudo dnf install rolldice
Для Arch/Manjaro rolldice доступен в Arch User Repository (AUR). Вы можете установить его с помощью помощника AUR, такого как yay.
yay -S rolldice
После установки пакета убедитесь, что он работает. Выполните следующую команду:
rolldice --version
Выводом будет версия rolldice на вашей системе. Это подтверждает, что пакет успешно установлен. Если возникает ошибка, попробуйте переустановить rolldice.
Используя бросок кубика
Использовать команду rolldice просто. Синтаксис следует обозначению NdM, где N — количество кубиков, которые вы хотите бросить, а M — количество граней на каждом кубике.
Для стандартного шестигранного кубика обозначение будет 1d6, что означает бросить один шестигранный кубик.
Теперь, если вы бросаете три шестигранные кости, обозначение будет 3d6. А теперь угадайте, что значит 3d20? Это значит, что вы бросаете три двадцатигранные кости.
Бросить одну кость
Теперь пусть терминал бросит наши кости. Чтобы бросить стандартный шестигранный кубик, введите в терминале:
rolldice 1d6
Бросить больший кубик
А что если вы захотите бросить что-то большее, чем простой 1d6? Особенно для ваших настольных игр, таких как Dungeons & Dragons, где вы кидаете 20-, 30- или даже 90-гранные кубики? Просто укажите нужное вам количество. Чтобы бросить 20-гранный кубик, введите в терминале:
rolldice 1d20
Бросить несколько кубиков одновременно
Бросить один кубик было довольно просто, верно? А теперь давайте бросим несколько кубиков. Например, чтобы бросить три шестигранных кубика, введите в вашем терминале:
rolldice 3d6
Применение модификаторов
Во многих РПГ броски кубиков не всегда принимаются «как есть». Часто добавляются модификаторы или бонусы за сильные способности, штрафы за сложные ситуации или проверки навыков, которые дают вам преимущество. Для этого rolldice выполнит расчёты за вас. Больше не нужно считать числа в голове.
Например, если вы бросаете четыре восьмигранные кубика и нужно прибавить +2 (например, за бонус к силе персонажа), вы бы сделали следующее:
rolldice 4d8+2
Итак, предположим, вы бросаете четыре восьмигранных кубика и получаете числа (3, 5, 7 и 2). В сумме это 17, затем вы прибавляете 2 за силу персонажа, что дает вам 19. Аккуратно и просто, всё сделано с помощью вашего всегда полезного терминала Linux.
В играх вроде «Подземелий и драконов», почти каждый бросок имеет какой-либо модификатор. Так что в следующий раз, вместо того чтобы бросать кости и затем вручную подсчитывать цифры, где вы, вероятно, допустите ошибки в расчетах в пылу игры, позвольте терминалу сделать работу за вас, а все могут сосредоточиться на главном: игре.
Скатывать несколько наборов вместе
Теперь, что если вы хотите бросить сразу несколько разных наборов кубиков? Всё просто. Просто разделите их пробелами.
rolldice 3d6 1d20 2d4+1
Метод 2: Использование команды shuf
Теперь, если вы не хотите устанавливать дополнительный пакет, такой как rolldice, или находитесь вне сети в своём лесном доме с только терминалом. Вы всё равно можете бросать кости, используя инструменты, которые уже встроены в большинство систем Linux. Одним из самых простых является команда shuf, которая является частью GNU coreutils.
Команда shuf обычно используется для перемешивания входных строк или выбора случайных значений из диапазона, но она также отлично подходит для моделирования бросков кубика.
Сначала давайте посмотрим, как работает команда shuf, перемешав немного фруктов:
echo -e "applenbananancherry" | shuf
Он перемешивал входные строки (каждый фрукт — это строка) и выводил их в случайном порядке. Теперь, когда вы используете shuf с опцией -i, вам не нужно предоставлять свой собственный список; он генерирует для вас диапазон чисел. Именно так мы будем использовать команду shuf для броска кубиков.
Бросьте шестигранный кубик
Чтобы бросить один шестигранный кубик, введите следующее в вашем терминале:
shuf -i 1-6 -n 1
Чтобы лучше понять, давайте разберём синтаксис:
- -i 1-6 задает диапазон (числа от 1 до 6).
- -n 1 говорит shuf выводить только одно число.
Бросить несколько кубиков
Чтобы бросить несколько кубиков одновременно, просто увеличьте значение -n. Например, чтобы бросить три шестигранных кубика:
shuf -i 1-6 -n 3
Каждое бросание будет отображаться на отдельной строке. В отличие от rolldice, shuf не вычисляет сумму автоматически, поэтому обычно вам нужно будет складывать числа самостоятельно. Мы можем суммировать числа прямо в терминале.
echo $((2+5+6))
Бросить более крупный кубик
Бросать d20 или d100? Просто измените диапазон:
shuf -i 1-20 -n 1
shuf -i 1-100 -n 1
Хотя shuf удобен, он более ограничен, чем rolldice. Во-первых, он не поддерживает RPG-обозначения вроде 3d6+2, и вам придется самому вычислять суммы. Тем не менее, если вы просто хотите быстрый способ бросить кубики в Linux без лишних наворотов, shuf отлично справляется с этой задачей.
Метод 3: Использование Bash с $RANDOM
Другой способ бросать кости без установки чего-либо — использовать переменную $RANDOM, встроенную в Bash. Каждый раз, когда вы ссылаетесь на $RANDOM, она генерирует псевдослучайное целое число от 0 до 32767. С помощью небольшой математики это можно преобразовать в любой вид броска кубика.
Бросить шестигранный кубик
Чтобы бросить стандартный шестигранный кубик (d6), введите:
echo $(( (RANDOM % 6) + 1 ))
Вот что происходит:
- Оператор % — это оператор взятия остатка, который возвращает остаток после деления.
- RANDOM % 6 берёт случайное число (0–32767) и делит его на 6, давая остаток между 0 и 5.
- Добавление +1 сдвигает диапазон до 1–6, точно как у настоящей кости.
Бросить двадцатигранный кубик
Бросок двадцатигранного кубика (d20) работает так же — просто измените число:
echo $(( (RANDOM % 20) + 1 ))
Бросить несколько кубиков
Бросать несколько кубиков немного сложнее, но это отличный способ попрактиковаться в циклах в bash — и впечатлить друзей своими навыками работы с Linux! Вот как можно бросить 3 шестигранных кубика (3d6). Существуют два подхода: построчно и однострочно.
Первый подход — это построчный. Я рекомендую вам следовать именно этому подходу. Причина в том, что это проще; кроме того, код логически делится на отдельные строки, что значительно облегчает понимание того, что происходит. Итак, просто набирайте каждую часть цикла на отдельной строке. Терминал будет давать вам приглашение к продолжению (>) до тех пор, пока цикл не будет завершен, как вы можете видеть ниже:
Строки, которые вы должны набрать, следующие:
sum=0 for i in 1 2 3; do roll=$((RANDOM % 6 + 1)) echo "Roll $i: $roll" sum=$((sum + roll)) done echo "Total: $sum"
Второй подход — это однострочник. Это компактный вариант для выполнения того же действия. Как только вы освоите синтаксис, вы сможете написать весь цикл в одной строке, используя точку с запятой (;) для разделения команд:
sum=0; for i in 1 2 3; do roll=$((RANDOM % 6 + 1)); echo "Roll $i: $roll"; sum=$((sum + roll)); done; echo "Total: $sum"
Нажмите Enter, и цикл выполнится сразу целиком. Эта версия короче, но сложнее для отладки, если что-то пойдет не так.
Даже если вы новичок в работе с терминалом, эти команды делают броски кубиков лёгкими, увлекательными и надёжными. Идеально подходят для игровой вечеринке с друзьями. Больше не нужно искать потерянные кости под диваном; ваш терминал всё сделает за вас.
Используйте rolldice для полного набора функций RPG, таких как модификаторы и суммы. Это самый простой способ бросить кость в терминале. Используйте shuf для быстрых оффлайн-бросков, а также вы можете использовать $RANDOM в bash для лёгкого варианта без установки и с эффектными особенностями!
















Добавить комментарий