Project1

标题: 银行贷款&股市系统 v0.3 [打印本页]

作者: 876加几    时间: 2015-10-30 23:41
标题: 银行贷款&股市系统 v0.3
本帖最后由 876加几 于 2015-10-31 21:48 编辑

终于写好了这个系统:
开设股市、银行可贷款,适合游戏:经营类游戏
灵感来自:大富翁游戏

图片:





RUBY 代码复制
  1. # 进入贷款界面
  2. $scene = Scene_Loan.new
  3. # 配置/进入股市界面
  4. names = ["66RPG","幻想天空","人民银行","东方航空","雷士照明","百度","苹果","三星"]
  5. equities = []
  6. for i in names
  7.   equities.push($game_equities[i])
  8. end
  9. $scene = Scene_Equity.new(equities)
  10. # 显示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.
RUBY 代码复制
  1. while @price[0] == @price[1]
  2.       @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
  3.     end

这个地方的@price = xxx 写得不对吧,@price可是一个数组啊
2. 应该充分利用原始Array类已有的方法,不必重新定义。这样定义起来麻烦,用起来效率也不好。
元素重排:Array#shuffle
取最大/最小:Array#max/min
3. 既然都用了全键盘,数字直接从键盘上输入就好了啊,干嘛非要做个界面?
4. @price 的内容是无限添加的吗?建议使用队列模型,将@price里面的内容控制在96个以内。因为太久远的信息可以丢弃。
5. 最后,有关四舍五入到百分位的运算,可以不必这样麻烦。完全可以用浮点数存储精确值,在显示的时候保留到百分位就行了。
RUBY 代码复制
  1. 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