Python中文
首页
教程
问答
标签
搜索
登录
注册
重构gam的“to-hit”值
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我在做一个游戏,其中一个方法是根据技能值计算角色的基本命中数。该方法目前单独计算每个值,因为每种技能都可以用于短距离、中距离和长距离。在</p> <p>我最初以为我可以将这些技能组合成一个元组并在其上迭代,动态地创建每个命中数。但我不知道是否真的有可能,因为我现在已经将每个命中数分配给了它自己的变量。在</p> <p>我还考虑为每个范围创建一个方法,并将元组作为参数传递。我可以用结果值创建一个新的元组或列表,然后将它们分配给各个变量,但我不认为这样做比这样做更好,只是看起来不像是复制粘贴。在</p> <p>以下是我目前的情况:</p> <pre><code> def calcBaseHitNumbers(self, dict): """Calculate character's base hit numbers depending on skill level.""" self.skill_dict = dict self.rifle = self.skill_dict.get('CRM', 0) self.pistol = self.skill_dict.get('PST', 0) self.big_gun = self.skill_dict.get('LCG', 0) self.heavy_weapon = self.skill_dict.get('HW', 0) self.bow = self.skill_dict.get('LB', 0) #self.skill_tuple = (self.rifle, self.pistol, self.big_gun, self.heavy_weapon, # self.bow) #---Short range ## for skill in self.skill_tuple: ## self.base_hit_short = skill * 0.6 self.charAttribs.bhCRM_short = self.rifle * 0.6 self.charAttribs.bhPST_short = self.pistol * 0.6 self.charAttribs.bhHW_short = self.heavy_weapon * 0.6 self.charAttribs.bhLCG_short = self.big_gun * 0.6 self.charAttribs.bhLB_short = self.bow * 0.6 #---Med range self.charAttribs.bhCRM_med = self.rifle * 0.3 self.charAttribs.bhPST_med = self.pistol * 0.3 self.charAttribs.bhHW_med = self.heavy_weapon * 0.3 self.charAttribs.bhLCG_med = self.big_gun * 0.3 self.charAttribs.bhLB_med = self.bow * 0.3 #---Long range self.charAttribs.bhCRM_long = self.rifle * 0.1 self.charAttribs.bhPST_long = self.pistol * 0.1 self.charAttribs.bhHW_long = self.heavy_weapon * 0.1 self.charAttribs.bhLCG_long = self.big_gun * 0.1 self.charAttribs.bhLB_long = self.bow * 0.1 </code></pre> <p>你如何重构它使它更具动态性?在</p> <hr/> <p><strong>编辑:</strong>我想我想做的是: 有一个元组(就像我注释过的那个)并迭代3次,每次根据每个特定范围的修饰符生成一个新值(针对每个技能)。结果值会自动分配给它各自的变量。在</p> <p>在我看来,这是有道理的。但当我真的试着编码的时候,我就迷路了。问题是,我想,这是我写的第一个“真正的”程序;我以前所做的只是一些小脚本。在</p> <p>这只是我的程序的0.1版本,所以现在重构它并不重要。然而,这似乎是非常不符合Python的手动操作,我也希望“未来证明”这一点,以防未来的事情发生变化。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>@Vinko:也许可以做calcBaseHitNumbers,做“如果没有”自计算基数:“内部检查,如果以前做过,就不做手术。也就是说,我看不出迫切需要预先计算这些信息。但我不是Python性能专家。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
6 回答
如何添加表示整数的擦边字符串?
5 回答
如何添加要在Bokeh中使用的新font.ttf文件?
5 回答
如何添加要显示的矩阵XY轴编号和XY轴
2 回答
如何添加计数?
8 回答
如何添加计数器函数?
9 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
7 回答
如何添加计数器来跟踪while循环中的月份和年份?
2 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
2 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
8 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
5 回答
如何添加评论拉梅尔亚姆
1 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
1 回答
如何添加谷歌地点自动完成到Flask?
7 回答
如何添加超时、python discord bot
2 回答
如何添加超过1dp的检查
6 回答
如何添加距离方法
3 回答
如何添加跟随游戏的敌人精灵
5 回答
如何添加路径以便python可以找到程序?
4 回答
如何添加身份验证/安全性以使用happybase访问HBase?
10 回答