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

Project1

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

[讨论] 随机数种子用预生成实现每周挑战慨念

[复制链接]

Lv4.逐梦者

梦石
0
星屑
14048
在线时间
2070 小时
注册时间
2016-9-20
帖子
844
跳转到指定楼层
1
发表于 2022-8-3 22:39:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 ppspssss 于 2023-1-29 12:33 编辑

随机数种子用预生成实现每周挑战慨念
以下 仅个人理解到最低慨念 ,观点 , 不可作为参考用途
在一些沙盒游戏如我的世界, 魔方世界 等游戏, 都有一个随机数种子, 虽然不同电脑 , 在输入同一个随机数种子, 都可获得一样的随机世界, 只要复制记录下一串数字便可以,   这个我本来不在意, 但当我玩了"兽人必须死2" 的塔防游戏 , 发现虽然是单机游戏也有一个"每周挑战", 我一直想不到这个"每周"是怎么形成 , 因为网游的话可以通过发布热更新进行更改, 单机游戏可是没网络的, 然后这几天想了可能就是用随机数种子实现, 通过时间来组合一个数, 由于每台电脑都有一个本地时间, 当时间不同, 生成的数字不同, 结合之前论坛上看过老式游戏的随机数也是用伪随机数列表形成, 那么要是预先生成多个列表, 再用不同时间节点生成一个数字编号, 再用对应的列表进行生成事物 ,
在rpgmaker xp里, 按F1 搜Time 时间的类。可以看到一些获取本地时间的方法
p Time.now.year #通过这个获取年份
p Time.now.strftime("%U")  或者  p Time.now.strftime("%W")  #通过这个获取年份 以第一个星期天作为第一周的开始  或 以第一个星期一作为第一周的开始 获得(0-53) 是指今年第几周份

事先生成每个周份的挑战, 比如大慨每年52个周, 你打算游戏十年, 就弄52 * 10 = 520个随机数表 , 至于怎么批量生成随机表这个贴子就不提 ,这个就用天气打比如, $随机数表[0]="天晴", $随机数表[31]="阴天" , $随机数表[70]="雨天"

以发贴时刻当例子, 是2022/8/3 Time.now.year 得到是2022 , Time.now.strftime("%U") 得到31 (是指今年第31周)
假如以 2022/1/1 是游戏中的第1个每周挑战 , 年份 2022 减去 2022 得到0 查询第几周 得到第0周  因此得到 0 * 52 + 0 = 1 ,  该周使用第0个数组内的随机数作为每周挑战值
那么该日得到的值为 "天晴"
假如以 2022/8/3 是游戏中每周挑战 , 年份 2022 减去 2022 得到0 查询第几周 得到第31周  因此得到 0 * 52 + 31 = 32 ,  该周使用第31个数组内的随机数作为每周挑战值
那么该日得到的值为 "阴天"
假如以 2023/5/3 是游戏中每周挑战 , 年份 2023 减去 2022 得到1 查询第几周 得到第18周  因此得到 1 * 52 + 18 = 70 ,  该周使用第70个数组内的随机数作为每周挑战值
那么该日得到的值为 "雨天"

由于此列表是要在游戏内是不会变, 因而玩家在不同电脑上只要是本地时间一样, 游戏内得到的隨機值就一样, 让时间获取得到一个数字, 这个数字代表几个组, 对应游戏内要随机的值 进行赋值, 再产生对应的效果, 我觉得要是使用得当或许可以造出虽是单机游戏, 也有部分网游单机的感觉 , 考虑到现在都是碎片时间多, 或许时间作为参考的话是不好,不想使用时间作为参照的话, 直接随机一个数字编号 , 或输入一个种子, 进行和预生成的随机组进行随机

=======2023/1/29
rmxp vx va 也有ruby自带的随机种子函数srand()
默设使用rand时会调用一次srand() , 因此设定过比如srand(2023) , 后如果再恢复使用普通随机数, 要再使用一次srand() 不然此后所有随机数都为固定数



内容仅供参考,

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

2
发表于 2022-8-5 16:31:11 | 只看该作者
个人觉得使用字符串的哈希算法更好一点
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-23 23:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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