@arruah

Как построить ромб при помощи пробелов и звёздочек в ruby?

Учусь программировать в Ruby. В курсе есть задача построить в консоли ромб используя пробелы и звёздочки. Решил использовать .each для построения вложенных циклов.
Не могу разобраться как построить алгоритм для нижней части ромба. Верхняя часть тоже изящностью не блещет, но всё же верхняя часть ромба строится.
Нашел в сети как строить ромб в JS но не смог разобраться как применить это в руби.
Мой код:
puts "Enter height of the piramid: "
height = gets.chomp
height_result = height.to_i * 2
(1..height_result).each do |string_number|
  (1..height_result).each do |second_number|
    if string_number <= height.to_i
    space_count = height_result / 2 - string_number
    asterisk_count = height_result / 2 + string_number - 1 - space_count
    else
    space_count = string_number - height.to_i
    asterisk_count = height.to_i - space_count
   end
    print " " * space_count + "*" * asterisk_count
    break
   end
  print "\n"
end

Вывод получается таким:
Enter height of the piramid:
6
*
    ***
   *****
  *******
 *********
***********
 *****
  ****
   ***
    **
     *
  • Вопрос задан
  • 786 просмотров
Решения вопроса 1
0xD34F
@0xD34F
(1..height_result - 1).each do |n|
  space_count = (height.to_i - n).abs
  asterisk_count = height_result - space_count * 2 - 1
  print " " * space_count + "*" * asterisk_count + "\n"
end
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы