python设置一个初始为0的计数器_Python:中的简单计数器

在尝试使用Otree(Python库)为两人竞猜游戏创建计分器时,作者遇到一个问题:计数器(total_score)的值始终为10,无法在每轮结束后增加。代码中定义了Player类,包括total_score属性和score_points方法来增加分数,但在IntermediateResults页面显示结果时,分数并未按预期更新。作者寻求帮助以理解为何total_score的值不会改变。
摘要由CSDN通过智能技术生成

我试图在Otree(Python库)中实现一个简单的计分器,通过修改竞猜游戏模板使之成为两个玩家。在

最后,我希望这个计数器只在某些情况下更新,但现在,我只想在每一轮之后增加10个。在

在模型.py,我定义了如下播放器类:class Player(BasePlayer):

question_id = models.IntegerField()

confidence = models.FloatField(widget=widgets.Slider(attrs={'step': '0.01'}))

question = models.StringField()

solution = models.StringField()

submitted_answer = models.StringField(widget=widgets.RadioSelect)

is_correct = models.BooleanField()

total_score = models.IntegerField(initial = 0)

def other_player(self):

return self.get_others_in_group()[0]

def current_question(self):

return self.session.vars['questions'][self.round_number - 1]

def check_correct(self):

self.is_correct = self.submitted_answer == self.solution

def check_if_awarded_points(self):

self.get_others_in_group()[0].submitted_answer == self.submitted_answer == self.solution

def score_points(self):

self.total_score+=10

self.payoff += c(10)

上面唯一相关的函数是“score points”,我在页面.py模板如下:

^{pr2}$

然后我创建一个结果页面,在每个问题后显示测试结果,以测试“总成绩”或“回报”是否每题增加10。在class IntermediateResults(Page):

def vars_for_template(self):

return {

'total_score': [p.total_score for p in self.group.get_players()],

'total_payoff': [p.payoff for p in self.group.get_players()]

}

如果我使用Django暴露total_payoff和total_score的值,我会看到它们的值是10,并且永远不会改变。我不知道为什么会这样。有什么想法吗?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值