![]() |
1
6
感觉上你真正想要的是一个代表武器的类,它有处理基本值和计算命中值的属性以及各种修饰符。下面是一个简单的例子:
从那里,你可以在你的角色对象中创建武器的实例,比如:
然后,如果,比方说,角色在短距离内发射手枪:
hit_value()方法的额外参数可用于传入特定于字符或情况的修改。
所有这些都是非常标准的,无聊的面向对象的设计过程,但是在很多情况下,这种思维方式会让你很快脱离实际,并提供至少一点基本的灵活性。 |
![]() |
2
1
你应该考虑使用策略设计。那就是创建一个具有命中点属性的武器超类。为来复枪、手枪、弓等创建子类武器。我确信武器之间的差异不仅仅是命中点。
如果你决定以后添加更多武器,那么你不必编辑你的字符代码,因为你的字符可以处理任何武器。 在伪Python中
|
![]() |
3
0
@文科:也许做一个calcBaseHitNumbers,做一个“如果不是自己。calculatedBase:”的内部检查,如果以前做过,就不要做任何操作。也就是说,我看不出预先计算这些信息的迫切需要。但我不是Python性能专家。 |
![]() |
4
0
你是什么意思?有什么可能会有所不同-技能的数量,或权重因素,范围的数量(短,中,长)或所有这些? 之后(例如)bhPST值会发生什么变化-它们会合并成一个数字吗? 其中一件事是技能列表在代码中是硬连接的-我倾向于用一个方法替换bh变量 所以(请考虑到我对Python一无所知:)
现在你可以保留一个技能列表,这些技能有助于提高命中率,并且可以反复调用bh_short等。
基本上,我们需要更多关于上下文的信息 |
![]() |
5
0
我会有一个角色属性的类(所以你在角色类中没有很多东西)和一个武器属性的类:
有一个
|
![]() |
Glory Raj · 有什么方法可以使这两个块具有共同的功能吗 2 年前 |
![]() |
Justin · Python自属性重命名 7 年前 |
![]() |
Sabutobi · 长dict属性行的重构 7 年前 |
![]() |
Falco Alexander · 简单LINQ重构/样式 7 年前 |
|
05bs001 · Euler 12需要优化 7 年前 |
![]() |
slartidan · 如何将lambda表达式重构为方法引用? 7 年前 |
|
Alex · 在Java类中频繁使用与映射键相同的字符串[已关闭] 7 年前 |