还记得您吹过的那些有趣的风车,它们一圈又一圈旋转吗?让我们编写一个!
风车将具有\ | / _
绘制其中心和手臂的一组字符。一个可能的风车可能看起来像这样:
|
|
|_ ___
___|_|
|
|
|
但是什么是不旋转的风车呢?没有乐趣!我们可以通过重新排列符号来使其旋转:
/
\ /
\ /
\/\
\/\
/ \
/ \
/
挑战在于创建一个程序,该程序需要三个整数并输出如下所示的风车。其中第一个是它具有的臂数,第二个是风车的臂的长度,第三个是它将顺时针旋转八分之一圈的次数。
您可以假设以下内容:
- 臂数始终为0、1、2、4或8。
- 所有的手臂将彼此等距隔开。
风车的初始位置将具有如下中心:
_ |_|
如果臂数为1,则可以决定臂指向哪个方向。
- 如果臂数为2,则可以决定使臂垂直或水平指向。
您可以编写通过STDIN或命令行参数接受输入的完整程序,或通过函数参数接受输入的函数。您的程序必须显示一系列显示风车旋转的输出,每个输出至少由一个空行分隔。风车的中心不应移动超过一个空间。您可以根据需要输出任意数量的前导和尾随空格。
这里有些例子:
0 2 1
_
|_|
/\
\/
1 3 2
|
|
|_
|_|
/
/
/
/\
\/
_ ___
|_|
2 2 0
_ __
__|_|
8 4 1
\ | /
\ | /
\ | /
\|_/____
____|_|
/ |\
/ | \
/ | \
/ | \
| /
\ | /
\ | /
\ |/
____\/\____
\/\
/| \
/ | \
/ | \
/ |
这是代码高尔夫,所以最短的代码获胜。祝好运!
输出中是否可以包含尾随换行符?
—
usandfriends 2013年
允许使用尾随的换行符,而对数量没有限制。
—
TNT
同样对于最后一个示例,对于第一个输出,每行前面都有一个多余的空间。我们可以在输出中添加前置和结尾空格吗?
—
usandfriends
输出中前导空格的数量与风车中心的位置有关,其位置的偏移不应超过一个空格。如果风车的旋转会导致手臂在输出中稍后到达风车中心的左端(例如对于输入
—
TNT
1 3 5
并且手臂最初朝上),则需要在较早的输出中添加空格以适应此情况。