Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
45 lines (35 sloc) 1.72 KB

习题 14: 提示和传递

让我们用 ARGVgets.chomp() 来向用户提一些特别的问题。下一节习题 你会学习如何读写文件,这节练习是下节的基础。在这道习题里我们将用略微不同的方法 使用 raw_input ,让它打出一个简单的 > 作为提示符。这和一些游戏中的方式 类似,例如 Zork 或者 Adventure 这两款游戏。

注意: 需要注意我们用 STDIN.gets 代替了 gets 。这是因为如果有东西在 ARGV 里, 标准的 gets 会把第一个参数当做文件而尝试从里面读东西。 为了读取用户的输入(如 stdin ),我们必须明确的使用 STDIN.gets

你应该看到的

当你执行这个脚本时,记住你需要把你的名字传给这个脚本,让ARGV可以接收到。

$ ruby ex14.rb Zed
Hi Zed, I'm the ex/ex14.rb script.
I'd like to ask you a few questions.
Do you like me Zed?
> Yes
Where do you live Zed?
> America
What kind of computer do you have?
> Tandy
Alright, so you said Yes about liking me.
You live in America.  Not sure where that is.
And you have a Tandy computer.  Nice.

加分习题

  1. 查一下 Zork 和 Adventure 是两个怎样的游戏。 下一份,然后玩玩看。
  2. prompt 变量改成完全不同的内容再运行一遍。
  3. 给你的脚本再添加一个参数,让你的程序用到这个参数。
  4. 确保你自己明白了我是怎么把 <<SOMETHING 的多行字符串和 #{ } 字符串插值结合到一起来输出文本的。
Something went wrong with that request. Please try again.