(вдохновленный этим ТАКИМ вопросом )
Вам дают в качестве входных данных одно положительное целое число n .
Как можно меньше символов выведите ракету в искусстве ASCII с головой, хвостом и телом, состоящим из n сегментов. Там не должно быть никаких пробелов или новых строк.
Голова и хвост ракеты всегда одинаковы для любого значения n . Тело состоит из двух различных типов сегментов, которые чередуются. Примеры должны прояснить структуру ракеты.
Выход для n = 1:
/**\
//**\\
///**\\\
////**\\\\
/////**\\\\\
+=*=*=*=*=*=*+
|\/\/\/\/\/\/|
|.\/\/..\/\/.|
|..\/....\/..|
|../\..../\..|
|./\/\../\/\.|
|/\/\/\/\/\/\|
+=*=*=*=*=*=*+
/**\
//**\\
///**\\\
////**\\\\
/////**\\\\\
Выход для n = 2:
/**\
//**\\
///**\\\
////**\\\\
/////**\\\\\
+=*=*=*=*=*=*+
|../\..../\..|
|./\/\../\/\.|
|/\/\/\/\/\/\|
|\/\/\/\/\/\/|
|.\/\/..\/\/.|
|..\/....\/..|
+=*=*=*=*=*=*+
|\/\/\/\/\/\/|
|.\/\/..\/\/.|
|..\/....\/..|
|../\..../\..|
|./\/\../\/\.|
|/\/\/\/\/\/\|
+=*=*=*=*=*=*+
/**\
//**\\
///**\\\
////**\\\\
/////**\\\\\
Выход для n = 3:
/**\
//**\\
///**\\\
////**\\\\
/////**\\\\\
+=*=*=*=*=*=*+
|\/\/\/\/\/\/|
|.\/\/..\/\/.|
|..\/....\/..|
|../\..../\..|
|./\/\../\/\.|
|/\/\/\/\/\/\|
+=*=*=*=*=*=*+
|../\..../\..|
|./\/\../\/\.|
|/\/\/\/\/\/\|
|\/\/\/\/\/\/|
|.\/\/..\/\/.|
|..\/....\/..|
+=*=*=*=*=*=*+
|\/\/\/\/\/\/|
|.\/\/..\/\/.|
|..\/....\/..|
|../\..../\..|
|./\/\../\/\.|
|/\/\/\/\/\/\|
+=*=*=*=*=*=*+
/**\
//**\\
///**\\\
////**\\\\
/////**\\\\\
Ответы:
CJam,
6763 символаЭто должно работать в онлайн-переводчике .
Как это устроено
После нажатия строки Unicode, фрагмент
преобразует строку из базы 60000 в базу 127, преобразует в строку и оценивает результат.
Выполненный код выглядит следующим образом:
источник
CJam, 121 байт
Попробуйте онлайн
Принимает ввод n через STDIN.
Я добавлю объяснение в какой-то момент позже. По сути, это всего лишь несколько петель очень наивным способом. Чтобы чередовать две разные части тела, у меня есть вложенный цикл над частью и цикл над
0
и1
. Затем я просто добавляю внешний итератор и внутренний и использую их четность, чтобы выбирать между направленным вверх или вниз треугольником.источник
java.util.NoSuchElementException
копию + вставил код (указывая наLri
)Рубин, 203
Ungolfed
Я думаю, что в этом случае выгодно иметь версию без гольфа.
объяснение
Я сомневаюсь, что это где-то близко к эффективности, но, тем не менее, это было весело.
ARGV
.h
содержит «голову» и «хвост» ракеты,r
содержит «гребни», которые разделяют различные части ракетыm
иp
являются верхней и нижней частями «корпуса» ракеты.Array
["ridge", "top of body", "bottom of body", "ridge", "bottom of body", "top of body"]
первым3*n
элементам.puts
удостоверяется, что все получает свою собственную линию.источник
Python, 120 + 77 + 1 = 198 символов
Это оказалось неправильным подходом, но я уже закончил, когда Мартин опубликовал свой ответ.
Требуется файл
R
(+1 для имени файла) размером 77 байт, который вы можете сгенерировать следующим образом:источник
JS, WIP, 252b или 173 символа
Это не функция, поэтому вы должны установить значение n в начале (3 здесь), а затем выполнить его в консоли или в nodeJS.
Вот версия 252b:
А вот версия с 173 символами (используется http://xem.github.io/obfuscatweet/ )
источник
JavaScript (E6) 252
257Чрезмерное использование string.repeat
источник
Javascript (ES3): 243
219байтисточник
SyntaxError: function statement requires a name
2: неверный вывод, сегменты тела не должны быть одинаковыми (нечетные и четные)