#1 by help_wanted
Hi all,
I have a problem with Chat.
I want to match players differently twice. (At the end, there will be different tasks for each match)
(For example, at first Group1=(P1, P2), Group2 =(P3, P4)
and in the second, Group1=(P3, P2), Group2 =(P1, P4) )
And for every match, I want to make players to chat each other.
However, I've found that the chat from the previous pages, with a channel remains even after the start of new page. I wish I can clear chat from the previous chat.
More specifically, with my code, (you can see it below)
I with Chat in "MyPage" will be clear out when it goes to "Page1"
(Also, I do not want to simply repeat the rounds, because I do not want the data size be super big)
The followings are my code and I also attached the screenshot:
I would appreciate any help!
class C(BaseConstants):
NAME_IN_URL = 'role'
PLAYERS_PER_GROUP = 2
NUM_ROUNDS = 1
PRINCIPAL_ROLE = 'Principal'
AGENT_ROLE = 'Agent'
class Subsession(BaseSubsession):
pass
class Group(BaseGroup):
pass
class Player(BasePlayer):
pass
def chat_nickname(player):
group = player.group
return 'Group {} player {}'.format(group.id_in_subsession, player.id_in_group)
def chat_channel(player):
group = player.group
return 'Group {}'.format(group.id_in_subsession)
class ShuffleWaitPage0(WaitPage):
wait_for_all_groups = True
@staticmethod
def after_all_players_arrive(subsession):
subsession.group_randomly()
class MyPage(Page):
@staticmethod
def vars_for_template(player):
return dict(
channel=chat_channel(player)
)
class ShuffleWaitPage(WaitPage):
wait_for_all_groups = True
@staticmethod
def after_all_players_arrive(subsession):
subsession.group_randomly()
class Page1(Page):
@staticmethod
def vars_for_template(player):
return dict(
channel=chat_channel(player)
)
class ResultsWaitPage(WaitPage):
pass
class Results(Page):
pass
page_sequence = [ShuffleWaitPage0, MyPage, ShuffleWaitPage, Page1, Results]