`
bryanzk
  • 浏览: 57740 次
文章分类
社区版块
存档分类
最新评论

Best of Ruby Quiz 之四 Animal Quiz之我的答案

阅读更多
终于完全靠我自己的思考,做出来一个quiz,就是第四个Animal Quiz,代码贴一下,笔记稍后放出。
 1class AnimalQuiz
 2    @@animals = Array.new                                        # 用来保存问题和答案的数组,每个数组元素又是一个数组,
 3                                                                                    # [["cat", "Is it cute?", "y"], ["dog", "does it bark?","y"] ]
 4        
 5    def AnimalQuiz.add_animal(animal)            
 6      @@animals.push(animal)
 7    end
 8
 9    
10    def self.do_quiz
11        match_animal = ""
12        @@animals.each do |animal|
13            puts animal[1]                                            # 提问题
14            s = gets
15            if  s.chomp! == animal[2]                        # 答案是否与数组中给定的答案匹配
16                puts "is it " + animal[0+ "?"     # 匹配的情况,询问是否是当前数组元素中的动物
17                if get_yes_or_no=="y"                            # 读取输入,是当前数组元素中的动物
18                    match_animal = animal[0]                 # 取出动物
19                    break                                                        
20                end
21            else                                                                 # 答案不匹配,向下一个数组元素中的问题进发
22                next
23            end
24        end
25        if match_animal.empty?                                # 循环完毕,没有找到答案
26            puts "you win, what animal do u think of?"         # 向数组中累积问题
27            user_animal = Array.new
28            user_animal << gets.chomp!
29            puts "give me a question"
30            user_animal << gets.chomp!
31            puts "what is your answer to this question?(y or n)"
32            user_animal << gets.chomp!
33            add_animal(user_animal)
34            puts "thanks"
35        else
36            puts "i win,"                                                # 找到动物
37        end        
38    end
39
40    def self.go
41        puts "Think of an animal"
42        puts "is it an elephant?"                            # 对大象特殊处理
43        if get_yes_or_no != "y"                                # 不是大象,开始处理
44            do_quiz
45        end
46        while wanna_play_again? =="y"                    # 是大象,询问是否想继续
47            puts "Think of an animal"              # 继续,进行后续quiz
48            do_quiz
49        end
50    end
51
52    private
53        
54    def self.wanna_play_again?
55        puts "wanna play again?"
56        get_yes_or_no
57    end
58    
59    def self.get_yes_or_no                                    # 获取用户输入
60        s =gets         
61        while ((s=~/^\s*y\s*$/).nil? && (s=~/^\s*n\s*$/).nil? )
62            puts "please input 'y' or 'n'"
63             s = gets
64         end
65         s.chomp!
66    end
67    
68end
69
70AnimalQuiz.go


小熊bryan 2007-07-24 11:15 发表评论
分享到:
评论

相关推荐

    Best of Ruby Quiz

    《Best of Ruby Quiz》是一本聚焦于Ruby编程语言的精选问答集锦,旨在帮助开发者深入理解和掌握Ruby的各种特性。这本书的描述简洁明了,"Best of Ruby Quiz"直接点出了其核心内容——一系列关于Ruby的精彩挑战和问题...

    《Best of Ruby Quiz》

    读者大多可以想出一种办法来解决这些问题,往往还能 通过思考和重构找到第二种优雅的设计,但这本书却给你列出了第三种、第四种真正精巧的解决方案——充分利用Ruby技巧才能得出的解决方案。

    《RUBY QUIZ - The Solitaire Cipher 》

    通过查看提供的文件列表,我们看到有“Pragmatic.Bookshelf.Best.of.Ruby.Quiz.Mar.2006.pdf”,这很可能是《Pragmatic Programmer》出版社出版的一本关于Ruby Quiz的最佳解答合集,其中可能包含了对这个具体挑战的...

    Best.of.Ruby.Quiz

    《Best.of.Ruby Quiz》是一本专为Ruby初学者精心编写的英文教程,旨在帮助新手逐步掌握这门强大而优雅的编程语言。Ruby作为一种动态、面向对象的脚本语言,因其简洁的语法和强大的元编程能力,深受开发者的喜爱。...

    Pragmatic.Bookshelf.Best.of.Ruby.Quiz.Mar.2006

    #### 一、《Pragmatic Bookshelf: Best of Ruby Quiz Mar. 2006》概述 - **书籍标题**:本书名为《Pragmatic Bookshelf: Best of Ruby Quiz Mar. 2006》,是一本专注于Ruby编程语言的经典练习册。 - **书籍内容**:...

    Pragmatic.Bookshelf.Best.of.Ruby.Quiz.Mar.2006.pdf

    《Pragmatic Bookshelf Best of Ruby Quiz Mar 2006》是一本专注于Ruby编程语言的书籍,由Pragmatic Bookshelf出版社出版。这本书的独特之处在于它采用了问答的形式,即"Quiz",来帮助读者深入理解和掌握Ruby的核心...

    ruby_quiz.rar

    "Pragmatic.Bookshelf.Best.of.Ruby.Quiz.Mar.2006.pdf"是这本书的电子版,出版于2006年3月,由Pragmatic Bookshelf出版社发行。 Ruby是一种动态、面向对象的脚本语言,以其简洁、优雅的语法和强大的元编程能力著称...

    Matlab编程第四版(StephenJ.Chapman)Quiz部分答案.pdf

    Chapman)Quiz 部分答案是学习 Matlab 编程的不二之选,适合各级学习者、研究人员和工程师使用。 以下是 Matlab 编程第四版(Stephen J. Chapman)Quiz 部分答案的一些重要知识点: 1. Matlab 基础知识:变量、...

    SSD 4 Quiz答案

    根据Quiz1的第一题,正确答案是选项(b),指出指向目标所需的时间与目标的距离直接相关。这一原理强调了用户界面设计中元素放置的重要性,例如,将常用功能放置在容易到达的位置,可以提高用户的操作效率。Fitts's ...

    SSD7全部QUIZ quiz 答案

    ### SSD7全部QUIZ quiz 答案解析 #### 多选题 Quiz1 ##### 题目1:电子商务系统由以下组件组成。哪些相同的组件必须包含在一个数据库中? 选项: - (a) I, II 和 III - (b) I 和 II - (c) I - (d) II **解析:** ...

    ssd3 quiz3答案

    【SSD3 Quiz3答案详解】——卡耐基教程精华解析 在计算机科学与信息技术领域,固态存储(Solid State Drive, SSD)是现代数据存储技术的重要组成部分,尤其是在提升系统性能方面发挥着至关重要的作用。卡耐基梅隆...

    ssd3 quiz9答案

    【SSD3 Quiz9答案详解】 在卡耐基教程中的SSD3(Structured Systems Design, 第3阶段)Quiz9,我们关注的是系统设计与分析的关键概念。这个阶段的学习旨在提升学员对复杂系统的设计、实现和优化能力。Quiz9可能是对...

    ssd1-quiz全套答案

    描述中提到"选择题答案 本人做的不一定满分",暗示这是一个关于SSD1知识的选择题答案集,可能是用户自己完成并分享的,可能存在一些不确定性和错误。 固态硬盘(SSD)是现代计算机存储设备中的一种,与传统的机械...

    ssd3 Practical Quiz 7 答案

    "Practical Quiz 7"可能是一个关于SSD3技术的实践性测验,旨在测试学生或专业人士对这一领域知识的理解和应用能力。下面,我们将深入探讨SSD3相关的知识点: 1. **工作原理**:SSD3的核心是NAND闪存,它由存储单元...

    ssd3quiz7答案

    这个资源包含了修正后的答案,旨在帮助学习者检验和巩固他们在SSD领域的理解。下面将详细解释与SSD3Quiz7相关的知识点。 1. 固态存储基础: - SSDs与传统硬盘(HDDs)的主要区别在于它们使用闪存芯片而非旋转磁盘来...

    SSD4quiz答案完整版

    这个完整版的答案集旨在帮助学生更好地理解和掌握课程中的关键概念,确保他们在学习过程中能够对所学知识进行有效的自我检测和巩固。 固态存储技术(SSD)是现代计算设备中不可或缺的部分,它以高速度、低延迟和无...

    ssd3 quiz4答案

    在"ssd3 quiz4答案"中,我们可能讨论以下几个关键知识点: 1. **需求工程**:这是软件开发的起始阶段,包括需求获取、分析、规格化和验证。在Quiz 4中,可能会有与需求文档编写、用例描述或用户故事相关的问题。 2...

    BestofRubyQuizFreePdfBook.pdf 英文原版

    Best of Ruby Quiz – Free Pdf Book

Global site tag (gtag.js) - Google Analytics