from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) import random from random import randint from django.utils.safestring import mark_safe from django.template.loader import render_to_string from string import digits, ascii_lowercase author = 'Your name here' doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'realefforttask' players_per_group = None num_rounds = 10 task_time = 300 piecerate = 50 maxwin = int(piecerate * num_rounds / 100) class Subsession(BaseSubsession): def creating_session(self): self.row1 = ' '.join(random.choices(["0","1"], k=15)) self.row2 = ' '.join(random.choices(["0","1"], k=15)) self.row3 = ' '.join(random.choices(["0","1"], k=15)) self.row4 = ' '.join(random.choices(["0","1"], k=15)) self.row5 = ' '.join(random.choices(["0","1"], k=15)) self.row6 = ' '.join(random.choices(["0","1"], k=15)) self.row7 = ' '.join(random.choices(["0","1"], k=15)) self.total_ones = sum([self.row1.count("1"), self.row2.count("1"), self.row3.count("1"), self.row4.count("1"), self.row5.count("1"), self.row6.count("1"), self.row7.count("1"), ]) total_ones = models.IntegerField() row1 = models.CharField() row2 = models.CharField() row3 = models.CharField() row4 = models.CharField() row5 = models.CharField() row6 = models.CharField() row7 = models.CharField() class Group(BaseGroup): pass class Player(BasePlayer): def is_correct(self): if self.answer == self.subsession.total_ones: self.answer_correct = 1 else: self.answer_correct = 0 answer = models.IntegerField(verbose_name="""""", blank = True) answer_correct = models.BooleanField() total_answers_correct = models.IntegerField()