首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby - memory游戏

Ruby - memory游戏
EN

Stack Overflow用户
提问于 2009-04-28 18:33:45
回答 3查看 400关注 0票数 0

我正在尝试建立一个非常简单的游戏使用Ruby将在网络上。我正在尝试:

用户转到页面,一个字符串显示X秒,然后在X秒后隐藏它并要求用户输入,然后检查此人走了多远(他们猜对了多少)

我的字符串是:

超时时间(秒)文本字符串用户输入字符串

然后我不确定如何比较这两个字符串。

EN

回答 3

Stack Overflow用户

发布于 2009-04-28 18:38:18

关于你可以使用的算法,有一些建议:

  • Levenshtein distance用于测量用户的输入对原始输入的正确程度。如果你真的对字符串的语言很感兴趣,
  • 也来看看Fuzzy string matching,这可能会很有趣,可以破解一个基于Soundex的匹配器。
票数 1
EN

Stack Overflow用户

发布于 2009-04-28 20:16:22

这假设您从字符串开始,但在数组中处理数据。(包括数组方法的字符串。)您可以将它用于任何可以放入数组中的内容。只需使用两个字符串调用,就可以得到分数。当任一字符串较短时,此方法同样有效。

代码语言:javascript
复制
#string to char array
def s_to_a(s)
  a = [] 
  s.each_char{|c| a << c}
  a
end

def memory_rating(s1, s2)
  score = 0

  #convert both strings to arrays
  a1 = s_to_a(s1)
  a2 = s_to_a(s2)

  a1.each do |e|
    # shift allows easy access to all elements of a2 
    # inside the iterator for a1
    score += (e == a2.shift) ? 1 : 0
  end
  score
end
票数 1
EN

Stack Overflow用户

发布于 2009-04-28 19:24:59

对于一种简单的方法,您可以将其视为字符数组比较,而不是字符串比较。

假设显示了字符串"abcdefg“,用户输入了"abdcefg",则认为他记住了给定字符串中的5个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/799287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档