主页
论坛
新帖
最新消息
新帖
最新动态
制作互助群
登录
注册
Toggle sidebar
Toggle sidebar
菜单
安装应用
安装
回复主题
【进站必读】宝可饭堂社区全局规定v1.10
关于坚决维护同人创作社群秩序与共识的公告
论坛
独立开发
进阶教程
【特性】非官方的特性教程练习题
禁用JavaScript。为了获得更好的体验,请在运行之前启用浏览器中的JavaScript。
您正在使用一款已经过时的浏览器!部分功能不能正常使用。
请尝试升级或使用
其他浏览器
。
信息
<blockquote data-quote="komeiji514" data-source="post: 2484" data-attributes="member: 65"><p>解析:此题的关键一是“出场时”,二是“数值最高的能力”。</p><p>前者告诉我们,要使用OnSwitchIn这个Handler,后者则需要我们计算宝可梦的各项能力,这正是本题的难点所在。</p><p></p><p>TA改:请制作不考虑能力等级和考虑能力等级的两个版本。</p><p></p><p>1.不考虑能力等级。</p><p>请参考异兽提升。</p><p></p><p>2.考虑能力等级。# komeiji514</p><p>请参考古代活性/夸克充能。</p><p>Gen 9 pack中古代活性/夸克充能计算能力并比较的代码如下:</p><p>[SPOILER="计算能力的实际数值。"]</p><p>[CODE=ruby] highestStat = nil</p><p> highestStatVal = 0</p><p> stageMul = [2, 2, 2, 2, 2, 2, 2, 3, 4, 5, 6, 7, 8]</p><p> stageDiv = [8, 7, 6, 5, 4, 3, 2, 2, 2, 2, 2, 2, 2]</p><p> battler.plainStats.each do |stat, val| #plainStats就是指攻击、防御、特攻、特防、速度这几项。</p><p> stage = battler.stages[stat] + 6</p><p> realStat = (val.to_f * stageMul[stage] / stageDiv[stage]).floor #计算宝可梦能力的实际值。</p><p> if realStat > highestStatVal #选出最大值。</p><p> highestStatVal = realStat</p><p> highestStat = stat</p><p> end</p><p> end[/CODE]</p><p>[/SPOILER]</p><p>下面一步就是提高这项能力,相信这一步对读者来说无需赘述了。</p><p></p><p>额外作业:</p><p>如果你能独立完成以上两个版本的话,可以尝试做以下的额外作业。</p><p>①.当最高的能力有多项时,随机提高一项能力。(1和2两个版本请都完成)</p><p>②.当最高的能力有多项时,让玩家手动选择想要提高的那项能力。(1和2两个版本请都完成)</p><p>③.写一个用来获取最高的能力的方法,该方法必须兼容以上的所有版本,并用该方法重写/优化以上的各个版本。</p><p>④.任选一个版本,在③的基础上,添加上“一场战斗只能发动一次”的前置条件。</p><p></p><p>也就是说,最后应该有这么些版本——</p><p>1.不考虑能力等级;</p><p>2.考虑能力等级;</p><p>3.不考虑能力等级,随机最高项;</p><p>4.考虑能力等级,随机最高项;</p><p>5.不考虑能力等级,手选最高项;</p><p>6.考虑能力等级,手选最高项;</p><p>7-12,以上版本对应的方法重写优化版。</p><p>13.7-12的任一版本,一次性版。</p><p></p><p>玩得开心。</p></blockquote><p></p>
[QUOTE="komeiji514, post: 2484, member: 65"] 解析:此题的关键一是“出场时”,二是“数值最高的能力”。 前者告诉我们,要使用OnSwitchIn这个Handler,后者则需要我们计算宝可梦的各项能力,这正是本题的难点所在。 TA改:请制作不考虑能力等级和考虑能力等级的两个版本。 1.不考虑能力等级。 请参考异兽提升。 2.考虑能力等级。# komeiji514 请参考古代活性/夸克充能。 Gen 9 pack中古代活性/夸克充能计算能力并比较的代码如下: [SPOILER="计算能力的实际数值。"] [CODE=ruby] highestStat = nil highestStatVal = 0 stageMul = [2, 2, 2, 2, 2, 2, 2, 3, 4, 5, 6, 7, 8] stageDiv = [8, 7, 6, 5, 4, 3, 2, 2, 2, 2, 2, 2, 2] battler.plainStats.each do |stat, val| #plainStats就是指攻击、防御、特攻、特防、速度这几项。 stage = battler.stages[stat] + 6 realStat = (val.to_f * stageMul[stage] / stageDiv[stage]).floor #计算宝可梦能力的实际值。 if realStat > highestStatVal #选出最大值。 highestStatVal = realStat highestStat = stat end end[/CODE] [/SPOILER] 下面一步就是提高这项能力,相信这一步对读者来说无需赘述了。 额外作业: 如果你能独立完成以上两个版本的话,可以尝试做以下的额外作业。 ①.当最高的能力有多项时,随机提高一项能力。(1和2两个版本请都完成) ②.当最高的能力有多项时,让玩家手动选择想要提高的那项能力。(1和2两个版本请都完成) ③.写一个用来获取最高的能力的方法,该方法必须兼容以上的所有版本,并用该方法重写/优化以上的各个版本。 ④.任选一个版本,在③的基础上,添加上“一场战斗只能发动一次”的前置条件。 也就是说,最后应该有这么些版本—— 1.不考虑能力等级; 2.考虑能力等级; 3.不考虑能力等级,随机最高项; 4.考虑能力等级,随机最高项; 5.不考虑能力等级,手选最高项; 6.考虑能力等级,手选最高项; 7-12,以上版本对应的方法重写优化版。 13.7-12的任一版本,一次性版。 玩得开心。 [/QUOTE]
验证
我们通常会将Pokemon Essentials简称为哪3个字母?
回复帖子
最新帖子
全
我想切换视角讲述故事
最新更新:全民制作人
星期三,21:43
开发问题
Z
将GBA打包成APK
最新更新:zheyeyeye
星期三,21:27
GBA教程
Z
【进站必读】宝可饭堂社区全局规定v1.10
最新更新:z1652646304
星期三,20:25
公告规定
雨
pokeemerald怎么改箱子数
最新更新:雨落天晴
星期二,10:16
开发问题
[讨论]什么契机导致你想做游戏的
最新更新:A原翼
星期一,00:12
其他相关讨论
论坛统计
主题
559
消息
2,422
成员
3,879
最新成员
stonezz
联系我们
QQ
2201858342
邮箱
pokefans@qq.com
论坛
独立开发
进阶教程
【特性】非官方的特性教程练习题
顶部