ruby - 如何让我随机生成的单词保持不变?
问题描述
enter code here
我正在制作一个简单的单词猜谜游戏,但每次我提交我的玩家猜测随机单词变化。我尝试了很多解决方案,但我的猜测提交表单总是刷新秘密单词。有什么建议么?谢谢!
PS对不起我恶心的代码格式
这是我的代码:
formulate_secret(@@codeword)
@vmessage = "Welcome to Wheel of Fortune! To begin, type a letter:"
@results = "..."
while @@tries > 1
player_guess = params[:guess].to_s
eval_guess(player_guess)
break
end
erb :home, :locals => {:message => @message, :tries => @@tries, :response => response, :words => @words, :codeword => @@codeword, :vmessage => @vmessage, :wordtable => @wordtable, :guess => player_guess, :result => @results}
end
@@correct = false
@vmessage = ""
@results = ""
wordtable = []
@@tries = 10
@result = []
@@codeword = ""
def read_secret
wordtable = Array.new
file = File.open("wordfile.txt")
File.foreach("wordfile.txt") { |line|
line = line.strip
wordtable.push line }
file.close()
@wordtable = wordtable
end
def formulate_secret(codeword)
read_secret
@result = []
5.times do
@result << @wordtable[rand(@wordtable.length)]
end
@@codeword = @result.sample
end
def eval_guess(player_guess)
@results = "#{@@codeword}"
if player_guess == "".to_s
""
elsif
player_guess == @@codeword
@results = "Congrats you did it!"
@@correct = true
elsif player_guess != @@codeword && !player_guess.nil?
@results = ""
@@tries -= 1
end
end
解决方案
这里有一些东西可以帮助您入门。请注意,每个函数只做一件事。一个创建单词列表,另一个从单词列表中返回一个单词。如果您可以将一件事/动作封装在一个函数中,我会有所帮助。
def createWordList(filename)
words = []
# Make sure filename exists as a file
File.foreach(filename){|line|
words.push(line.chomp)
}
words
end
def getRandWord(words)
words.sample
end
print "Enter filename: "
filename = gets.chomp
puts getRandWord(createWordList(filename))
推荐阅读
- titanium - iOS 13 暗模式无法使用 Titanium 经典框架
- postgresql - 带有 Rocket 和 Diesel 的多租户 Web 应用程序
- neo4j - 基于多重关系的 Neo4J 匹配节点
- r - 使用 facet_wrap 在 ggplot2 中构建快照图并接收错误:宽度必须为长度 1 或 ncol - 1
- azure-ad-b2c - 通过 Azure AD B2C 授权 Azure 函数事件网格触发器
- javascript - 使用带有秘密的 github 操作对应用程序构建/部署进行反应
- python - 从文本文件中读取 url 后,如何将所有响应保存到单独的文件中?
- angular - Angular 10 值在自动完成中为空
- mysql - 将 mysqlimport 与文件列的子集一起使用
- vba - VBA 问题 - 尝试连接和循环