Напишите программу или функцию, которая рисует звезду ASCII, учитывая размер рук в качестве входных данных.
Вот звезда размера 1
_/\_
\ /
|/\|
Вот звезда размера 2
/\
__/ \__
\ /
\ /
| /\ |
|/ \|
Вот звезда размера 3
/\
/ \
___/ \___
\ /
\ /
\ /
| /\ |
| / \ |
|/ \|
И так далее.
вход
Один положительное целое число в любом удобном формате , n > 0
.
Выход
ASCII-арт-представление звезды, следуя приведенным выше правилам. Лидирующие / завершающие символы новой строки или другие пробелы являются необязательными, при условии, что точки располагаются соответствующим образом.
правила
- Либо полная программа или функция приемлемы. Если функция, вы можете вернуть вывод, а не распечатать его.
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).
Ответы:
Древесный уголь ,
2017 байт-3 байта благодаря Нейлу.
Попробуйте онлайн!Ссылка на подробную версию.
Я очень доволен этим гольфом, так что ...
объяснение
источник
Polygon
... Я что-то не так делаю?Polygon
оставляет курсор на последнем символе, но я не использовалPolygon
... на самом деле я не использовал лучший код, сейчас мне осталось 17.Move(:Right); for (n) Print("_");
.SOGL V0.12 ,
2724 байтаПопробуй здесь!
Объяснение:
источник
Python 2 ,
166 160 157 155152 байтаexec
Подход точно такой же счетчик байтов.Попробуйте онлайн!
Сохранено 3 байта благодаря Джонатану Фреху .
источник
t=" ";y,z=t*2,"\\"
наt,z=" \\";y=t+t
.Ява 8,
385376344304285280268264252250+ 19байтПопробуйте онлайн!
источник
int o=
внешнюю петлю ( 268 байтов )++
непосредственно при последнем появленииi
, например: 264 байта .Mathematica, 189 байт
Строка 2 определяет вспомогательный оператор
±
, который используется для оценки строки 4:В строке 3
ReplaceAll
(/.
) принимает матрицу, представляющую звезду размера 1, а также список правил выше. Для заключительных шагов мы используемArrayFlatten
, который корочеSubstitutionSystem
, иStringRiffle
.источник
Java 7, 295 байт
Решение это метод
f
.Попробуйте онлайн (JDK 8)
Ungolfed
Подтверждения
источник
x
на 1 справа от начала:<T>String s(T s,int n){return"".format("%"+-~n+"s",s);}String f(int x){String n="\n",s="/",b="\\",o="",u="_";int i=0;for(x--;i<x;u+="_")o+=s(s,2*x-i+1)+s(b,2*i++)+n;o+=u+s+s(b,2*i++)+u+n;for(;i-->0;)o+=s(b,x-i)+s(s,4*x-2*(x+~i))+n;for(;++i<=x;)o+=s("|",x)+s(s,x-i)+s(b,2*i)+s("|",x-i)+n;return o;}
Python 2 , 137 байт
Попробуйте онлайн!
источник