问题描述
我正在尝试制作一个基本的拼写控制台应用程序,该应用程序使用MacOS文本进行语音语音说一个单词,而用户应该拼写这个单词。
我只想输出字母字符,所以我用STDIN.getch
代替了gets
,但是我发现当我快速拼写单词时,即使输出的单词是正确的,输出的字符也会变得混乱和重复我希望。
我做错了什么,它不仅仅输出正在说出并包含在最后一个单词中的字母?
我快速拼写马时输出:
hoorsrese
horse
代码:
class Speaker
def say(text)
`say #{text}`
end
end
require 'io/console'
class SpellMaster
def initialize(speaker = Speaker.new)
@speaker = speaker
end
def spell(word = 'word')
@speaker.say "Spell #{word}"
spelling = get_spelling
if spelling == word
@speaker.say('correct')
else
@speaker.say('incorrect')
end
gets
end
def get_spelling
char = ''
word = ''
while char != "\r"
char = get_letter
word += char
end
printf("\n" + word)
word.chomp
end
def get_letter
char = STDIN.getch
return '' unless /[a-z]/.match?(char) || char == "\r"
print char
@speaker.say(char)
char
end
end
SpellMaster.new.spell
编辑:删除类变量
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)