Project1
标题:
如何建立答题库
[打印本页]
作者:
lrf0426112
时间:
2012-6-17 07:11
标题:
如何建立答题库
请问专业人士,我想建立一个题库,实现游戏中可以随机从题库中把题目抽出来。 dsu_plus_rewardpost_czw
作者:
zdb123
时间:
2012-6-17 08:10
未命名.JPG
(65.49 KB, 下载次数: 29)
下载附件
保存到相册
2012-6-17 08:10 上传
作者:
懒De说
时间:
2012-6-17 08:48
可以写个脚本,框架不过30行,主要是随机变量 判断
作者:
hys111111
时间:
2012-6-17 09:16
module RPG
class Question
def initialize
@name = "" #题目名称
@choose = [] #选项
@right = 0 #正确选项(0,1,2,3,更多)
end
attr_accessor :name
attr_accessor :choose
attr_accessor :right
end
end
class Game_Question
attr_reader :question
def initialize
@question = []
@question[0] = RPG::Question.new
@question[0].name = "一加一等于多少?"
@question[0].choose[0] = "一"
@question[0].choose[1] = "二"
@question[0].choose[2] = "十一"
@question[0].right = 1
@question[1] = RPG::Question.new
@question[1].name = "你是猪吗?"
@question[1].choose[0] = "是"
@question[1].choose[1] = "不是"
@question[1].right = 0
@question[2] = RPG::Question.new
@question[2].name = "天上掉下一张脸,你要不要"
@question[2].choose[0] = "要"
@question[2].choose[1] = "不要"
@question[2].choose[2] = "要一半"
@question[2].right = 2
@question[3] = RPG::Question.new
@question[3].name = "下列侵犯生命健康权的是"
@question[3].choose[0] = "杀人"
@question[3].choose[1] = "抄袭"
@question[3].right = 1
end
end
class Scene_Question
def main
@question = nil
# 执行过渡
Graphics.transition
# 主循环
loop do
# 刷新游戏画面
Graphics.update
# 刷新输入信息
Input.update
# 刷新画面
update
# 如果切换画面就中断循环
if $scene != self
break
end
end
# 准备过渡
Graphics.freeze
# 释放窗口
p "你忘了设置答题结束的场合了"
end
def update
if @question == nil
@question = rand(Game_Question.new.question.size)
@command_window = Window_Command.new(192, Game_Question.new.question[@question].choose)
@command_window.back_opacity = 160
@command_window.x = 320 - @command_window.width / 2
@command_window.y = 288
@window_name = Window_Question_Name.new(@question)
Graphics.transition
end
@command_window.update
@window_name.update
if Input.trigger?(Input::C)
if @command_window.index == Game_Question.new.question[@question].right
p "你忘了设置正确的场合了"
else
p "你忘了设置错误的场合了"
end
@question = nil
@command_window.dispose
@window_name.dispose
return
end
if Input.trigger?(Input::B)
$scene = Scene_Map.new
return
end
end
end
class Window_Question_Name < Window_Base
def initialize(id)
super(0,0,640,480)
@name = Game_Question.new.question[id].name
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
self.contents.clear
self.contents.font.color = normal_color
self.contents.draw_text(0,0,640,32,@name,1)
end
end
复制代码
完成
作者:
chd114
时间:
2012-6-17 13:33
建议用事件(可以让问题和选项一起出现)
变量【题目编号】=0...1000
条件分歧:【题目编号】==1
显示文章:hcm是不是RMXP提问区的版主?
显示选择项【是,不是】
【是】的场合
你答对了!奖励10XP!
【不是】的场合
你长得像个人,但从来不干人事,奖励-10XP!
分歧结束
除此以外的场合
条件分歧【题目编号】==2
显示文章:1+1=?
数值输入的处理(1位)
条件分歧:?==2
显示文章:你知道的太多了!死霸!(这里纯属整人)
除此以外的场合
显示文章:你怎么这么笨!
分歧结束
分歧结束
分歧结束
‘‘──chd114于2012-6-17 18:46补充以下内容:
[@]2144rr[/@]我就是要LZ放到时间里
’’
作者:
end55rpg
时间:
2012-6-17 20:59
我觉得题放在txt里比较好,然后regexp来用,编辑方便点
作者:
hcm
时间:
2012-7-7 10:01
本帖最后由 hcm 于 2012-7-7 10:02 编辑
http://115.com/file/e74li2cc#
自制的范例,在敌人队伍那里的战斗事件里德显示文章和选项有,另外可以查看一下公共事件的分数判定,
<
本来是悬赏几十VIP的啦,不过被赖了一半账,不过本来就技术说也不值那么多,全是体力活。
>
作者:
agangogo
时间:
2022-1-21 15:02
怎么 用读txt的文件来弄呢?
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1