1
y=(1..10).map{|i| i.to_s==$*[0]?($*.shift;?0):?.}
4.times{|i| puts (y.pop(4-i)* ' ').center 8 }
输出:寻找澄清这个红宝石挑战赛结束 - 保龄球的Ascii艺术
. . . .
. . .
. .
.
什么是* ' '
的括号
y=(1..10).map{|i| i.to_s==$*[0]?($*.shift;?0):?.}
4.times{|i| puts (y.pop(4-i)* ' ').center 8 }
输出:寻找澄清这个红宝石挑战赛结束 - 保龄球的Ascii艺术
. . . .
. . .
. .
.
什么是* ' '
的括号
第一线后的内部做,y
是这样的字符串排列:
y=(1..10).map{|i| i.to_s==$*[0]?($*.shift;?0):?.}
# => [".", ".", ".", ".", ".", ".", ".", ".", ".", "."]
Array#*str
是等效的到Array#join(str)
,它将字符串连接在一起。特别地,* ' '
将数组中的字符串与空白字符串连接在一起:
y.pop(3)
# => [".", ".", "."]
y.pop(3) * ' '
# => ". . ."
您可以在PPCG上问我! ;) – britishtea
我即将提到[这个答案](http://quia.cf/orange/pooxy4/nph-poxy.pl/es/20/http/codegolf.stackexchange.com/questions/42645/draw-a (我猜我刚刚做过),并要求@britishtea提供解释。但是,答案似乎是针对更普遍的情况。对于点图,它会简化很多。 –
似乎没有人提到'$ *'是一个包含命令行参数的全局变量。 –