昊天SEO

练习48: 更进阶的使用者输入–笨方法学ruby在线

你的游戏可能一路跑得很爽,不过你处理使用者输入的方式肯定让你不胜其烦了。每一个房间都需要一套自己的语句,而且只有使用者完全输入正确后才能执行。你需要一个设备,它可以允许使用者以各种方式输入语汇。例如下面的几种表述都应该被支援才对:

  • open door
  • open the door
  • go THROUGH the door
  • punch bear
  • Punch The Bear in the FACE

也就是说,如果使用者的输入和常用英语很接近也应该是可以的,而你的游戏要识别出它们的意思。为了达到这个目的,我们将写一个模块专门做这件事情。这个模块里边会有若干个类,它们互相配合,接受使用者输入,并且将使用者输入转换成你的游戏可以识别的命令。

英语的简单格式是这个样子的:

  • 单词由空格隔开。
  • 句子由单词组成。
  • 语法控制句子的含义。

所以最好的开始方式是先搞定如何得到使用者输入的词汇,并且判断出它们是什么。

我们的游戏语汇

我在游戏里建立了下面这些语汇:

  • 表示方向: north, south, east, west, down, up, left, right, back.
  • 动词: go, stop, kill, eat.
  • 修饰词: the, in, of, from, at, it
  • 名词: door, bear, princess, cabinet.
  • 数字词: 由 0-9 构成的数字。

说到名词,我们会碰到一个小问题,那就是不一样的房间会用到不一样的一组名词,不过让我们先挑一小组出来写程式,以后再做改进吧。

如何断句

我们已经有了词汇表,为了分析句子的意思,接下来我们需要找到一个断句的方法。我们对于句子的定义是「空格隔开的单词」,所以只要这样就可以了:

stuff = gets.chomp()
words = stuff.split()

本文地址官网    新乡网站建设,seo

分享到:更多 ()
a