设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1276|回复: 5
打印 上一主题 下一主题

[已经解决] 关于随机选择问题提问

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
55 小时
注册时间
2011-7-15
帖子
48
跳转到指定楼层
1
发表于 2012-7-24 22:20:53 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
想设置一个考官,随机从已写好的问题中抽取并提问,但是问题太多,该怎么设置?

Lv3.寻梦者

双子人

梦石
0
星屑
3190
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

6
发表于 2012-7-25 10:43:41 | 只看该作者
  1. module RPG
  2.   class Question
  3.     def initialize
  4.       @name = "" #题目名称
  5.       @choose = [] #选项
  6.       @right = 0 #正确选项(0,1,2,3,更多)
  7.     end
  8.     attr_accessor :name
  9.     attr_accessor :choose
  10.     attr_accessor :right
  11.   end
  12. end
  13. class Game_Question
  14.   attr_reader :question
  15.   def initialize
  16.     @question = []
  17.    
  18.     @question[0] = RPG::Question.new
  19.     @question[0].name = "一加一等于多少?"
  20.     @question[0].choose[0] = "一"
  21.     @question[0].choose[1] = "二"
  22.     @question[0].choose[2] = "十一"
  23.     @question[0].right = 1
  24.    
  25.     @question[1] = RPG::Question.new
  26.     @question[1].name = "你是猪吗?"
  27.     @question[1].choose[0] = "是"
  28.     @question[1].choose[1] = "不是"
  29.     @question[1].right = 0
  30.    
  31.     @question[2] = RPG::Question.new
  32.     @question[2].name = "天上掉下一张脸,你要不要"
  33.     @question[2].choose[0] = "要"
  34.     @question[2].choose[1] = "不要"
  35.     @question[2].choose[2] = "要一半"
  36.     @question[2].right = 2
  37.    
  38.     @question[3] = RPG::Question.new
  39.     @question[3].name = "下列侵犯生命健康权的是"
  40.     @question[3].choose[0] = "杀人"
  41.     @question[3].choose[1] = "抄袭"
  42.     @question[3].right = 1
  43.   end
  44. end
  45. class Scene_Question
  46.   def main
  47.     @question = nil
  48.     # 执行过渡
  49.     Graphics.transition
  50.     # 主循环
  51.     loop do
  52.       # 刷新游戏画面
  53.       Graphics.update
  54.       # 刷新输入信息
  55.       Input.update
  56.       # 刷新画面
  57.       update
  58.       # 如果切换画面就中断循环
  59.       if $scene != self
  60.         break
  61.       end
  62.     end
  63.     # 准备过渡
  64.     Graphics.freeze
  65.     # 释放窗口
  66.     p "你忘了设置答题结束的场合了"
  67.   end
  68.   def update
  69.     if @question == nil
  70.       @question = rand(Game_Question.new.question.size)
  71.       @command_window = Window_Command.new(192, Game_Question.new.question[@question].choose)
  72.       @command_window.back_opacity = 160
  73.       @command_window.x = 320 - @command_window.width / 2
  74.       @command_window.y = 288
  75.       @window_name = Window_Question_Name.new(@question)
  76.       Graphics.transition
  77.     end
  78.     @command_window.update
  79.     @window_name.update
  80.     if Input.trigger?(Input::C)
  81.       if @command_window.index == Game_Question.new.question[@question].right
  82.         p "你忘了设置正确的场合了"
  83.       else
  84.         p "你忘了设置错误的场合了"
  85.       end
  86.       @question = nil
  87.       @command_window.dispose
  88.       @window_name.dispose
  89.       return
  90.     end
  91.     if Input.trigger?(Input::B)
  92.       $scene = Scene_Map.new
  93.       return
  94.     end
  95.   end
  96. end
  97. class Window_Question_Name < Window_Base
  98.   def initialize(id)
  99.     super(0,0,640,480)
  100.     @name = Game_Question.new.question[id].name
  101.     self.contents = Bitmap.new(width - 32, height - 32)
  102.     refresh
  103.   end
  104.   def refresh
  105.     self.contents.clear
  106.     self.contents.font.color = normal_color
  107.     self.contents.draw_text(0,0,640,32,@name,1)
  108.   end
  109. end
复制代码
……
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3852
在线时间
1582 小时
注册时间
2006-5-5
帖子
2743
5
发表于 2012-7-25 09:31:22 | 只看该作者
不管怎么样,你也得打200道题进去不是?
步兵中尉
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
55 小时
注册时间
2011-7-15
帖子
48
4
 楼主| 发表于 2012-7-25 06:51:50 | 只看该作者
步兵中尉 发表于 2012-7-24 23:07
这个简单。
1、确立一个变量,然后在“变量操作”里选择随机数,然后选择1~?(?代表你的题术,例如你将会 ...

大约有200多个问题,你想累死我吗。。。。。(不能用脚本吗,那位大神救救我啊。。。)


‘‘──zl245479821于2012-7-25 06:52补充以下内容:

嗯,每次都随机,大约200多个
’’
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
44
在线时间
317 小时
注册时间
2011-2-9
帖子
1129
3
发表于 2012-7-24 23:19:20 | 只看该作者
题目可以循环出吗?每次都随机吗?一次要多少题目?
反正是坏人一个
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3852
在线时间
1582 小时
注册时间
2006-5-5
帖子
2743
2
发表于 2012-7-24 23:07:06 | 只看该作者
这个简单。
1、确立一个变量,然后在“变量操作”里选择随机数,然后选择1~?(?代表你的题术,例如你将会准备10个问题,那么?就写10)
2、选择“条件分歧”,第一页选变量相等,之后“常量”处填写1
3、符合条件的填写第一个问题,不符合的看下一步。
4、重复2号步骤, “常量”那里填2,重复3号步骤,之后一次类推。

评分

参与人数 1梦石 +2 收起 理由
hcm + 2 认可答案

查看全部评分

步兵中尉
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-29 09:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表