gpt4 book ai didi

用于多个单词的 Ruby pig 拉丁语翻译器

转载 作者:数据小太阳 更新时间:2023-10-29 08:09:40 24 4
gpt4 key购买 nike

我正致力于用 ruby​​ 创建一个 pig 拉丁语翻译器。它适用于大多数单词,但我在让它一次处理多个单词时遇到了一些麻烦。因此,例如,当您只输入单词“apple”时,您会得到“appleay”,但如果输入了多个单词,它不会翻译它们。我一直在四处寻找解决方案,但一无所获。这里的其他一些主题对让我走到这一步非常有帮助。任何提示将非常感谢。

我还在 if/else 语句中添加了几个异常(exception),以允许对“quiet”和“square”进行正确的 pig 拉丁翻译,其中“qu”被视为辅音。

在此先感谢您的帮助!

def translate (word)
alpha = ('a'..'z').to_a
vowels = %w[a e i o u]
consonants = alpha - vowels

if vowels.include?(word[0..0])
word + 'ay'
elsif consonants.include?(word[0..0]) && consonants.include?(word[1..1])
word[2..-1] + word[0..1] + 'ay'
elsif word[0..1] == "qu"
word[2..word.length]+"quay"
elsif word[0..2] == "squ"
word[3..word.length]+"squay"
else consonants.include?(word[0])
word[1..-1] + word[0..0] + 'ay'
end

end

最佳答案

你可以这样做:

Alpha = ('a'..'z').to_a
Vowels = %w[a e i o u]
Consonants = Alpha - Vowels

def translate(word)
if Vowels.include?(word[0])
word + 'ay'
elsif Consonants.include?(word[0]) &&
Consonants.include?(word[1])
word[2..-1] + word[0..1] + 'ay'
elsif word[0..1] == "qu"
word[2..-1]+"quay"
elsif word[0..2] == "squ"
word[3..-1]+"squay"
else Consonants.include?(word[0])
word[1..-1] + word[0..0] + 'ay'
end
end

puts "Enter some text to translate"
text = fgets
puts text.split.map(&method(:translate)).join(' ')

关于用于多个单词的 Ruby pig 拉丁语翻译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14309008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com