Ruby |建造金字塔的方法有问题
Ruby | Problem with method for build pyramids
我已经有一个程序可以让你用“#”构建一个金字塔,但我想用方法创建一个新文件。我不明白为什么它不起作用。我已经测试了很多代码。我什至删除了 25 个故事循环。
puts "Salut, bienvenue dans ma super pyramide ! Combien d'étages veux-tu ?"
print ">"
etages = gets.chomp.to_i
espace = etages - 1
carre = 1
while etages > 25
puts "Réessayez ! La pyramide ne doit pas excéder 25 étages !"
print "> "
etages = gets.chomp.to_i
end
etages.times do
espace.times do
print " "
end
espace -= 1
carre.times do
print "#"
end
carre += 2
puts " "
end
def ask_etages
puts "Salut, bienvenue dans ma super pyramide ! Combien d'étages veux-tu ?"
print ">"
etages = gets.chomp
return etages
end
def full_pyramid
espace = etages - 1
carre = 1
etages.times do
espace.times do
print " "
end
espace -= 1
carre.times do
print "#"
end
carre += 2
puts " "
end
end
def perform
ask_etages
full_pyramid
end
perform
基本上你需要将变量espace
传递给你的方法full_pyramid
,所以你只需要一个小的改变。
由于 ask_etages
要求用户输入(旁注:使用 puts
而不是 print
)然后 returns 该值作为整数需要传递给它至 full_pyramid
.
这样做只需将方法定义为:
def full_pyramid(etages)
espace = etages - 1
carre = 1
etages.times do
espace.times do
print " "
end
espace -= 1
carre.times do
print "#"
end
carre += 2
puts " "
end
end
然后定义perform
为:
def perform
full_pyramid(ask_etages)
end
我已经有一个程序可以让你用“#”构建一个金字塔,但我想用方法创建一个新文件。我不明白为什么它不起作用。我已经测试了很多代码。我什至删除了 25 个故事循环。
puts "Salut, bienvenue dans ma super pyramide ! Combien d'étages veux-tu ?"
print ">"
etages = gets.chomp.to_i
espace = etages - 1
carre = 1
while etages > 25
puts "Réessayez ! La pyramide ne doit pas excéder 25 étages !"
print "> "
etages = gets.chomp.to_i
end
etages.times do
espace.times do
print " "
end
espace -= 1
carre.times do
print "#"
end
carre += 2
puts " "
end
def ask_etages
puts "Salut, bienvenue dans ma super pyramide ! Combien d'étages veux-tu ?"
print ">"
etages = gets.chomp
return etages
end
def full_pyramid
espace = etages - 1
carre = 1
etages.times do
espace.times do
print " "
end
espace -= 1
carre.times do
print "#"
end
carre += 2
puts " "
end
end
def perform
ask_etages
full_pyramid
end
perform
基本上你需要将变量espace
传递给你的方法full_pyramid
,所以你只需要一个小的改变。
由于 ask_etages
要求用户输入(旁注:使用 puts
而不是 print
)然后 returns 该值作为整数需要传递给它至 full_pyramid
.
这样做只需将方法定义为:
def full_pyramid(etages)
espace = etages - 1
carre = 1
etages.times do
espace.times do
print " "
end
espace -= 1
carre.times do
print "#"
end
carre += 2
puts " "
end
end
然后定义perform
为:
def perform
full_pyramid(ask_etages)
end