我是一个介绍性的软件开发课程,我的作业是创建一个岩石剪刀程序,它带有两个参数(摇滚,纸张)等,并返回获胜的arg.
现在如果我可以使用条件语,我会快速解决这个问题,但是作业说我们需要知道的一切都在红宝石教科书的前三章中,而这些章节不包括条件语!没有它们可以创建这个程序吗?或者他只是期望我们足智多谋并使用条件?虽然这是一个非常简单的条件分配...我想我可能会在这里遗漏一些东西.
编辑:我正在考虑那个chmod数值系统,并认为通过该添加系统可以实现解决方案......
小智 11
这是仅使用哈希的一个:
RULES = {
:rock => {:rock => :draw, :paper => :paper, :scissors => :rock},
:paper => {:rock => :paper, :paper => :draw, :scissors => :scissors},
:scissors => {:rock => :rock, :paper => :scissors, :scissors => :draw}
}
def play(p1, p2)
RULES[p1][p2]
end
puts play(:rock, :paper) # :paper
puts play(:scissors, :rock) # :rock
puts play(:scissors, :scissors) # :draw
Run Code Online (Sandbox Code Playgroud)
def winner(p1, p2)
wins = {rock: :scissors, scissors: :paper, paper: :rock}
{true => p1, false => p2}[wins[p1] == p2]
end
Run Code Online (Sandbox Code Playgroud)
获胜者(:摇滚,摇滚)#=>:摇滚乐哦! - 托克兰
按@sarnold,留下这个作为学生的练习:).
| 归档时间: |
|
| 查看次数: |
6420 次 |
| 最近记录: |