如何正确使用plugins功能? #66
-
example_custom_training_score.py下面是我自己的理解: class Training(single_mode.Training):
def score(self, ctx: single_mode.Context) -> float:
ret = super().score(ctx) #赋予权重
ret += self.stamina * 0.3 #体力的计算值变为原来的1.3倍
return ret 我这样的理解是正确的吗?
example_custom_race_score.py下面是我自己的理解: class Race(single_mode.Race):
def score(self, ctx: single_mode.Context) -> float:
ret = super().score(ctx)
if self.name == "有馬記念": #当比赛名称中含有“有馬記念”
ret += 10 #评分点+10
return ret 这个相对于好理解一些,有下面两个问题想咨询下:
class Race(single_mode.Race):
def score(self, ctx: single_mode.Context) -> float:
ret = super().score(ctx)
if self.name == "OP":
ret -= 10
return ret
class Race(single_mode.Race):
def score(self, ctx: single_mode.Context) -> float:
ret = super().score(ctx)
if self.name == "GⅠ":
ret += 20
if self.name == "GⅡ":
ret += 10
return ret example_custom_context.py这个我基本上没看明白工作原理是什么, class Context(single_mode.Context):
def next_turn(self) -> None:
super().next_turn()
auto_derby.config.pause_if_race_order_gt = {
1: 5,
2: 3,
3: 2,
4: 1,
}[self.date[0]] 里面的
应该怎么理解呢? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 3 replies
-
example_custom_training_score.py
按当前属性插值 如果没达到标准线就给更高的分,当然如果你把一个训练的分数给太高可能导致总分下降 比如速度我的实现是 auto-derby/auto_derby/single_mode/training.py Lines 186 to 190 in a5a1177 当前0速每点速度给2分 当前300速每点速度给1分 当前600分每点速度给0.8 中间是插值 example_custom_race_score.py只有想不到没有做不到 不过 name 是比赛名称 永远不会是 example_custom_context.py
这个就是第一年跑第五名不暂停 第二年跑第三名不暂停 URA跑第一名不暂停 |
Beta Was this translation helpful? Give feedback.
example_custom_training_score.py
super().score(ctx)
是调用父类的score
方法实现,这里是获取插件未更改前的评分 或者你不调用也可以 那就得纯靠你自己算评分了按当前属性插值 如果没达到标准线就给更高的分,当然如果你把一个训练的分数给太高可能导致总分下降
比如速度我的实现是
auto-derby/auto_derby/single_mode/training.py
Lines 186 to 190 in a5a1177
当前0速每点速度给2分 当前300速每点速度给1分 当前600分每点速度给0.8 中间是插值
_training_single_score
和mathtools.integrate
的实现是一样的 之后删掉只用 mathtoolsexample_custom_race_score.py
只有想不到没有做不到
不过 name 是比赛名称 永远不会是
OP
GⅠ
如果你要判断比赛级别用self.grade == Race.GRADE_G1
example_custom_context.py
next_turn
会在每次一个新的回合调用self.date
…