Project1
标题: 银行贷款&股市系统 v0.3 [打印本页]
作者: 876加几 时间: 2015-10-30 23:41
标题: 银行贷款&股市系统 v0.3
本帖最后由 876加几 于 2015-10-31 21:48 编辑
终于写好了这个系统:
开设股市、银行可贷款,适合游戏:经营类游戏
灵感来自:大富翁游戏
图片:
# 进入贷款界面
$scene = Scene_Loan.new
# 配置/进入股市界面
names = ["66RPG","幻想天空","人民银行","东方航空","雷士照明","百度","苹果","三星"]
equities = []
for i in names
equities.push($game_equities[i])
end
$scene = Scene_Equity.new(equities)
# 显示names数组中的所有股票,股价随机,参数不可缺少
# 进入贷款界面
$scene = Scene_Loan.new
# 配置/进入股市界面
names = ["66RPG","幻想天空","人民银行","东方航空","雷士照明","百度","苹果","三星"]
equities = []
for i in names
equities.push($game_equities[i])
end
$scene = Scene_Equity.new(equities)
# 显示names数组中的所有股票,股价随机,参数不可缺少
注意:原来有存档的游戏请删除存档,否则读档会出错!
输入数字时按数字盘上的2、4、6、8时光标会移动,为避免篡改有的习惯性的用数字盘操作方向!
参数设置有限制,否则会出现Bug!
特别声明:本脚本会与其他脚本冲突:
已知脚本冲突列表 |
脚本名称 | 冲突类 | 症状(前置、后置均为本脚本) |
Fuki对话框 | Scene_Map | 前置:时间流逝、贷款提示窗口不运行
后置:对话框为默认,非Fuki |
截图存档 | Scene_Save
Scene_Load | 前置:无法保存股票信息,且读档再次使用股票出错
后置:存档不截图 |
附件:v0.3
银行贷款&股市系统.zip
(214.53 KB, 下载次数: 218)
0.3版本最新特性:股价生成有下限,不用担心仅几块钱的股票绘制的图像移位了。
有Bug欢迎及时反馈。
作者: york0818 时间: 2015-10-31 07:46
顶一下,虽然不使用XP......
作者: RyanBern 时间: 2015-10-31 10:32
本帖最后由 RyanBern 于 2015-10-31 12:05 编辑
让我想起了大富翁的贷款和股票,不知楼主的灵感是否来源于此?
和制作的界面相比,我更对楼主的股票模型感兴趣。于是翻了一下代码。
楼主的模型:
本时刻股价=U * 上一时刻股价
其中U~[1-h, 1+h]的均匀分布。
首先楼主固定涨跌停板为0.15,但是如果这样计算,实际的股价可能超过此比例。
所以,我建议采用经济学普遍接受的模型:
dS=aSdt+bZsqrt(dt)
其中dS为股价变化量,S为当前股价,a和b都是正的常数,dt是离散的时间间隔(如果嫌麻烦可以直接取dt=1),Z是一个随机变量,服从N(0, 1)的正态分布。附:如何生成正态分布的随机数 https://rpg.blue/thread-382848-1-1.html
然后就是各种脚本的细节问题。
1.
while @price[0] == @price[1]
@price = ((((rand(MAX_UPS_AND_DOWNS_PER_DAY / FREQUENCY_PER_DAY * 2000) - MAX_UPS_AND_DOWNS_PER_DAY / FREQUENCY_PER_DAY * 1000) + 1000) * first_price) / 1000.0 * 100).round * 0.01
end
while @price[0] == @price[1]
@price = ((((rand(MAX_UPS_AND_DOWNS_PER_DAY / FREQUENCY_PER_DAY * 2000) - MAX_UPS_AND_DOWNS_PER_DAY / FREQUENCY_PER_DAY * 1000) + 1000) * first_price) / 1000.0 * 100).round * 0.01
end
这个地方的@price = xxx 写得不对吧,@price可是一个数组啊
2. 应该充分利用原始Array类已有的方法,不必重新定义。这样定义起来麻烦,用起来效率也不好。
元素重排:Array#shuffle
取最大/最小:Array#max/min
3. 既然都用了全键盘,数字直接从键盘上输入就好了啊,干嘛非要做个界面?
4. @price 的内容是无限添加的吗?建议使用队列模型,将@price里面的内容控制在96个以内。因为太久远的信息可以丢弃。
5. 最后,有关四舍五入到百分位的运算,可以不必这样麻烦。完全可以用浮点数存储精确值,在显示的时候保留到百分位就行了。
text = sprintf("%.2f", price)
text = sprintf("%.2f", price)
暂时发现这些可以改进的地方
作者: 876加几 时间: 2015-10-31 11:40
本帖最后由 876加几 于 2015-10-31 17:11 编辑
RyanBern 发表于 2015-10-31 10:32
让我想起了大富翁的贷款和股票,不知楼主的灵感是否来源于此?
和制作的界面相比,我更对楼主的股票模型感 ...
[版本已更新至v0.2]
回答:
1.把@price改为@price[0]
2.只对显示价格四舍五入,如果在其它场合也要四舍五入?
我设置的涨停/跌停板幅度为10%除以每天变化频率,而每日最大变化设置为0.15.如果设置为0.1,涨停/跌停板几乎不可能,而四舍五入最容易出现精度错误(如13.5700000000001),所以显示要用四舍五入\
数字使用全键盘:添加窗口可以显示&用Enter输入数字(包括退位和最大)
作者: 超音速 时间: 2015-10-31 19:30
这个太牛了
然而我并不用XP
作者: chd114 时间: 2015-10-31 23:50
贷款到期不还怎么办?
作者: stevenrock 时间: 2015-11-2 19:10
好厉害的系统啊,银行贷款,如果到期了就强制主角卖血怎样?
作者: 锡鹏 时间: 2015-11-4 15:32
好好好, 谢谢大神。
作者: 锡鹏 时间: 2015-11-4 15:35
大神好好好,如果可以研究飞行棋或者棋之类,那就太好了。 由于我能力不足, 研究不出来。
作者: hfz521999 时间: 2015-11-24 15:24
1、开始新游戏可以正常进行 存档以后再读档就出现这个问题!!
2、另外 屏幕上边的那个时间显示能隐藏吗???
作者: 876加几 时间: 2015-11-27 19:56
hfz521999 发表于 2015-11-24 15:24
1、开始新游戏可以正常进行 存档以后再读档就出现这个问题!!
2、另外 屏幕上边的那个时间显示能隐藏吗 ...
1.主题帖声明的问题。
2.请在Scene_Map中@time_window = Window_Time.new后以及loop do前插入@time_window.visible = false
作者: az1051647181 时间: 2022-3-19 19:57
大佬,整一个mv的呗
作者: 织梦行云 时间: 2023-1-8 17:48
顶一下,有没有MV的
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |