Давайте сначала определим метод для построения двух типов линий.
def make_line(n, mid_char)
['*', *[mid_char]*(n-2), '*'].join(' ')
end
make_line(5, '*') #=> "* * * * *"
make_line(5, '#') #=> "* # # # *"
Теперь создайте метод для рисования линий по нужному шаблону. i
-я линия (базовый ноль) состоит из звезд и пробелов, только если (i+1) % 3
равно нулю; иначе это также строка, содержащая знаки фунта.
def draw(n)
all_stars = make_line(n, '*')
two_stars = make_line(n, '#')
n.times { |i| puts ((i+1) % 3).zero? ? all_stars : two_stars }
end
draw 5
* # # # *
* # # # *
* * * * *
* # # # *
* # # # *
draw 6
* # # # # *
* # # # # *
* * * * * *
* # # # # *
* # # # # *
* * * * * *
draw 7
* # # # # # *
* # # # # # *
* * * * * * *
* # # # # # *
* # # # # # *
* * * * * * *
* # # # # # *