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

Project1

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

[已经解决] 如何建立答题库

[复制链接]

Lv1.梦旅人

梦石
0
星屑
130
在线时间
0 小时
注册时间
2012-6-17
帖子
1
跳转到指定楼层
1
发表于 2012-6-17 07:11:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
请问专业人士,我想建立一个题库,实现游戏中可以随机从题库中把题目抽出来。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
37 小时
注册时间
2009-10-4
帖子
45
2
发表于 2012-6-17 08:10:19 | 只看该作者

点评

你这样岂不是很麻烦,还不如用脚本呢  发表于 2012-6-17 08:47
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
229
在线时间
596 小时
注册时间
2010-6-21
帖子
1218
3
发表于 2012-6-17 08:48:27 | 只看该作者
可以写个脚本,框架不过30行,主要是随机变量 判断
如果我是一个美工就好啦!
回复

使用道具 举报

Lv3.寻梦者

双子人

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

开拓者

4
发表于 2012-6-17 09:16:19 | 只看该作者
  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
复制代码
完成

点评

补上召唤方法:$scene = Scene_Question.new  发表于 2012-6-17 13:08
没问题。  发表于 2012-6-17 13:08
好厉害啊这个,话说我拿走去用没问题吧?没问题吧这个?我指的是伸手……  发表于 2012-6-17 12:59
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

5
发表于 2012-6-17 13:33:09 | 只看该作者
建议用事件(可以让问题和选项一起出现)

变量【题目编号】=0...1000
条件分歧:【题目编号】==1
     显示文章:hcm是不是RMXP提问区的版主?
   显示选择项【是,不是】
   【是】的场合
       你答对了!奖励10XP!
   【不是】的场合
       你长得像个人,但从来不干人事,奖励-10XP!
   分歧结束
除此以外的场合
   条件分歧【题目编号】==2
         显示文章:1+1=?
      数值输入的处理(1位)
      条件分歧:?==2
              显示文章:你知道的太多了!死霸!(这里纯属整人)
      除此以外的场合
          显示文章:你怎么这么笨!
      分歧结束
   分歧结束
分歧结束


‘‘──chd114于2012-6-17 18:46补充以下内容:

[@]2144rr[/@]我就是要LZ放到时间里
’’

点评

把题目放在公共事件里更好。。  发表于 2012-6-17 18:45
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
690
在线时间
791 小时
注册时间
2011-10-20
帖子
2394

开拓者

6
发表于 2012-6-17 20:59:32 | 只看该作者
我觉得题放在txt里比较好,然后regexp来用,编辑方便点
欢迎点此进入我的egames.wink.ws,有RMQQ堂等

[url=http://rpg.blue/thread-317273-1-1.html]短篇八-赶选

http://yun.baidu.com/share/link?shareid=2158225779&uk=169642147&third=0


历险ARPG赢回你的疆域新的战斗模式?…………点击这里:[宋乱贼狂 for QQ堂]
http://rpg.blue/group-368-1.html
programing ....?
[url=http://rpg.blue/thrd-234658-1-1.html]
回复

使用道具 举报

Lv3.寻梦者

虚空人形

梦石
0
星屑
4604
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

7
发表于 2012-7-7 10:01:54 | 只看该作者
本帖最后由 hcm 于 2012-7-7 10:02 编辑

http://115.com/file/e74li2cc#
自制的范例,在敌人队伍那里的战斗事件里德显示文章和选项有,另外可以查看一下公共事件的分数判定,
<本来是悬赏几十VIP的啦,不过被赖了一半账,不过本来就技术说也不值那么多,全是体力活。>
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
223
在线时间
22 小时
注册时间
2022-1-20
帖子
17
8
发表于 2022-1-21 15:02:31 | 只看该作者
怎么 用读txt的文件来弄呢?
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 17:04

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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