В этом задании вы должны отобразить искусство ASCII водяного шара с учетом количества воды, которым наполнен воздушный шар:
| __||__ |
| / # #\ |
| |######| |
| |######| |
| |######| |
| |######| |
| |######| |
| \######/ |
| |
| |
+----------+
Как нарисовать воздушный шар
Чтобы отобразить шарик размера n
, выполните следующие действия (примечание: всякий раз, когда используется символ деления ( /
), он представляет целочисленное деление, округление в меньшую сторону):
Нарисуйте контейнер, состоящий из десяти вертикальных столбцов (
|
) слева и справа, десяти штрихов (-
) внизу и знака плюс (+
) в левом нижнем и правом нижнем углу. Это делает все это 12x11, а "внутри" 10x10.| | | | | | | | | | | | | | | | | | | | +----------+
Нарисуйте две вертикальные полосы (отверстие в шарике), центрированные в середине верхнего ряда, с
n/2
подчеркиваниями (_
) с каждой стороны (для этого примераn
будет 5):| __||__ | | | | | | | | | | | | | | | | | | | +----------+
Нарисуйте одну косую черту (
/
) и одну обратную косую черту (\
) вокруг этой верхней строки, на одну строку ниже:| __||__ | | / \ | | | | | | | | | | | | | | | | | +----------+
Нарисуйте
n
ряды одинаково расположенных вертикальных полос, а затем одну строку из пары (все еще одинаково расположенных) обратной косой черты и косой черты:| __||__ | | / \ | | | | | | | | | | | | | | | | | | | | | | \ / | | | | | +----------+
«Наполните» баллон водой, представленной знаком хеша (
#
). Начните с самого нижнего ряда и двигайтесь вверх. Если строка заполнена не полностью, вы можете размещать хеш-метки в любом месте (в приведенном ниже примере они размещаются случайным образом, но вы можете поместить их, скажем, все слева, если хотите).| __||__ | | / # #\ | | |######| | | |######| | | |######| | | |######| | | |######| | | \######/ | | | | | +----------+
Максимум n
7, а минимум 0.
вход
На входе будет целое число i
, представляющее собой количество хеш-меток (воды), которые должны быть нарисованы.
Он никогда не будет меньше 2 или больше 100.
Выход
На выходе должен быть шарик размером n
с i
хеш-метки (единицы воды), где n
наименьший возможный размер, который может содержать i
единицы воды. Так i
как всегда будет 2 или больше, n
всегда будет 0 или больше.
Максимально возможный размер, на котором можно нарисовать шарик, равен n
= 7. Если шарик размера 7 не может вместить указанное количество воды, шарик всплывает:
| |
| |
|## # ###|
|##########|
|##########|
|##########|
|##########|
|##########|
|##########|
|##########|
+----------+
(Выше должно быть выходное значение для ввода i
= 76. Точно так же, как незапертый воздушный шар, шесть дополнительных единиц воды в верхнем ряду могут быть расположены, как вам угодно.)
Контрольные примеры
Зачем иметь один тестовый случай, когда вы можете иметь их все ?
Вот анимированный GIF всех входов i
от 2 до 100:
счет
Это код-гольф , поэтому выигрывает самый короткий код в байтах.