Давайте создадим художественные часы и календарь в формате ASCII, которые сообщают нам текущий месяц, день месяца, день недели, час, минуту, а также ночь или день (но не год или секунда).
В любой конкретный момент календарь будет выглядеть примерно так: (выглядит лучше с меньшим интервалом между строками)
________________________________________________________________
|\ ____________________________________________________________ /|
| | ___ | |
| | _( ) | |
| | (___)__) -.- | |
| | | |
| | | |
| | -.- | |
| | -.- | |
| | ___ | |
| | _( ) | |
| | (___)__) | |
| | | |
| | ___ | |
| | _( ) | |
| | _ (___)__) | |
| | /|\ | |
| | / | \ | |
| | /__|__\ | |
| |____|____ | |
| |\_______/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~~~| |
| |____________________________________________________________| |
|/______________________________________________________________\|
Это всегда «картинная рамка» 66 на 23 символа, границы которой никогда не меняются.
Изображение в кадре говорит нам время и дату:
- В течение дня (6:00 утра - 5:59 вечера) месяц определяется количеством птиц (
-.-
) в небе. Январь = 1 птица, февраль = 2 птицы и т. Д. - В течение ночи (6:00 вечера - 5:59 утра) птиц заменяют в 3 раза больше звезд (
*
). Январь = 3 звезды, февраль = 6 звезд и т. Д. Птицы и звезды никогда не бывают на небе одновременно. - День месяца определяется количеством символов между двумя тире (
-
) на воде. Например,~~-~~~~-~~
означает, что это четвертый день месяца. В зависимости от минуты лодка может находиться между тире (тире не вращаются). - День недели определяется количеством облаков на небе (все облака выглядят одинаково). Воскресенье = 0 облаков , понедельник = 1 облачность, ..., суббота = 6 облаков.
- Час определяется уровнем воды (и лодкой). Наименьшее (как указано выше) это 1 час, в течение 2 часов он на один символ выше и так далее до 12 часов, а затем обратно на 1 час. (Это 12 часов, а не 24 часа.)
- Минута определяется горизонтальным положением лодки. В верхней части часа лодка касается левого края рамы (как указано выше). На каждой последующей минуте лодка движется прямо на одного персонажа. В течение минут с 51 по 59 он проходит с правой стороны кадра обратно влево.
Итак, учитывая, что в приведенном выше примере есть 3 птицы, 3 облака, 2 символа между штрихами, вода на самом нижнем уровне и лодка слева, мы можем сказать, что дата - среда 2 марта, а время - 1: 12 вечера.
Вот еще один пример с воскресенья 25 апреля в 3:58:
________________________________________________________________
|\ ____________________________________________________________ /|
| | | |
| | * * | |
| | * * * | |
| | * | |
| | | |
| | * | |
| | * * | |
| | | |
| | * | |
| | | |
| | * | |
| | _ | |
| | /|\ * | |
| |/ | \ | |
| |__|__\ /| |
| |__|____ __| |
| |______/~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~\_| |
| | | |
| | | |
| |____________________________________________________________| |
|/______________________________________________________________\|
Цель
Ваша цель - написать самую короткую из возможных программ, которая выводит эти «календари» ASCII-графики в стандартный вывод, используя время запуска программы.
Каждый запуск программы должен выводить одну временную сцену. Обновления не должны быть автоматическими (или анимированными).
Облака, звезды и птицы должны располагаться в небе случайным образом (поэтому каждый пробег, даже один и тот же момент времени, вероятно, будет отличаться). Они никогда не должны перекрывать лодку или друг друга. (Также водные черты не должны перекрывать корпус лодки.)
Обратите внимание, что ничего из того, что я описал, не появляется под водой. Это для вас, чтобы сделать. В течение одного заранее определенного часа каждой недели (на ваш выбор) что-то интересное должно быть нарисовано под водой. Это может быть морской монстр или затонувший корабль или что-то еще, решать только вам. В течение этого часа вы можете даже изменить дизайн остальной части сцены (оставаясь в границах кадра).
счет
Это комбо-конкурс популярности кода-гольфа.
Ваш результат (bytes in program) - 4 * (upvotes - downvotes)
. Самый низкий балл побеждает.
Используйте http://mothereff.in/byte-counter в качестве счетчика байтов, если вы используете символы не ASCII.
Примечания и обновления
Вы можете использовать буи вместо тире, так как, давайте посмотрим правде в глаза, они гораздо более уместны:
| | ~~(_)~~~(_)~~ (3rd of the month)
Черточки (или буи) не обязательно должны быть случайными, но было бы неплохо, если бы они были.
- Ваш «особый час» должен длиться 60 минут с начала часа до 1 минуты до следующего часа.
- В течение особого часа вещи, которые вы рисуете под водой, могут двигаться и могут изменять поверхность и небо, когда это имеет смысл (например, морской монстр ест лодку, черная дыра образуется на морском дне и т. Д.)
источник
Ответы:
Рубин, на краю света,
12601070967 байтКто-нибудь помнит этот фильм «Пираты Карибского моря»?
Там еще есть много возможностей для улучшения гольфа, но это только начало.
Теперь, что с ссылкой на фильм? Очевидно, что Зеленая Вспышка случается намного чаще, чем Джек Воробей хочет, чтобы мы верили. На самом деле, это происходит примерно раз в неделю, а не раз в десять лет. Каждое воскресенье на закате, Черный Рубин (час) делает один раунд на земле мертвых:
источник
Java - Симпатичный Кракен (много байтов)
РЕДАКТИРОВАТЬ: Дальнейшие улучшения для птиц / звезд поднимают вершину и облака, теперь самый загруженный календарь (12 вечера, суббота, декабрь) работает примерно в 70% случаев. Другие 30% я получаю (будьте готовы к этому) Ошибка переполнения стека, потому что я использую рекурсию. Новые картинки самого занятого календаря и новая картинка Кракена, которая показывает минимумы / максимумы звезд / облаков.
Теперь лучше обрабатывает ситуации, в которых случайное рассеяние звезд / птиц предотвращает случайное попадание облаков. Когда вещи слишком переполнены, и после 200 попыток это не сработает, мы снова делаем звезды / птицы в надежде, что следующая конфигурация даст облакам некоторое личное пространство.
Кто такой милый остроумный квакен? Кто такой милый остроумный квакен? Вы! Вы!
Незначительные правки, до сих пор нет игры в гольф. Квакен появляется на 9, потому что он знает, что все ожидают его в полночь. Теперь он маленький и застенчивый, но однажды он надеется съесть корабль.
Облака имеют тенденцию быть низко в небе, в то время как звезды и птицы любят летать над ними; вещи, как правило, немного переполнены около 8 часов.
Случайный выход
супер занят выход
Если мы введем наш кракен путем жесткого кодирования некоторых значений, мы получим ...
источник
Python3 - Пираты и Медузы:
15801472 байтаКаждую среду в полночь пиратский корабль тонет в нашей лодке. Шум пробуждает гигантскую медузу, которая случайным образом бродит по кадру в течение часа.
Пример во вторник 19 августа 23:27
По средам около полуночи:
источник
Кобра - 994
Без покупок: 994
С Bouys: 1084
В 1:00 каждое воскресенье бесконечные просторы тильдского моря оживают с ослепительным голубым блеском. Надежда возвращается к людям пустынного мира раковин.
источник
C #
11241128 байтРаз в неделю плохая субмарина ASCII должна появляться на час ниже ватерлинии, и заметно увеличить мой счетчик байтов, надеюсь, этот код будет действительно работать сейчас . Я боюсь думать, что происходит по субботам в 11:00 в декабре ...
Несколько отформатированный код (который перерисовывается каждые 15 секунд, потому что я неправильно прочитал спецификацию):
Пример выходных данных (следует читать 3:31, среда, 13 августа):
источник
Луа - больше чем звезды
Я задолбался!
Ну, не сделано сделано. Я сделал с этим кодом и вызовом. Это не игра в гольф, в нем отсутствует индикатор месяца. Там нет никакого избегания ... Я только отправляю это так, чтобы в случайном случае никто не заканчивал этот вызов, по крайней мере Вы видели кое-что, получили идею.
Вы можете посмотреть на это здесь.
источник