HuangFuSL / Werewolf

The final project of Computer Network in 2020A
MIT License
1 stars 3 forks source link

关于client.py文件 #10

Closed HuangFuSL closed 3 years ago

HuangFuSL commented 3 years ago

首先一个问题是,client.py和client_subthread.py文件的关系是怎样的

关于代码里的一些问题:

以上问题均已经fix,可以检查一下我的fix是否符合要求。如下是我没能fix的代码:

    def playing(self):
        k = 0
        try:
            while(1):
                reqPacket = _recv(self.socket)
                k += 1
                IoThread(k, reqPacket)
        except KeyboardInterrupt:
            if player.role != 1:  # 我这里假定1是狼人了,没找到各角色对应的序号,以后再改叭
                pass
            else:
                packet = self._getBasePacket()
                packetSend = ChunckedData(1, **packet)
                packetSend.send(self.socket, ADDR)
                self.alive = False

if player.role != 1:这里的player是个什么变量?程序里没有任何地方出现player的声明。这里建议修改一下,添加player的定义或改写一下

其实我觉得每个client可以在得知自己的身份之后把自己的身份保存成全局变量,这样可能是一个比较好的做法

如上

etchCHENG commented 3 years ago
  1. 我设想的是,subthread只是client里ioThread的run函数,每次接包后新建一个I/O线程,整体是单个文件
  2. player应该是self,这个类名叫Player,现在已经改成全局变量ROLE了
HuangFuSL commented 3 years ago
  1. 我设想的是,subthread只是client里ioThread的run函数,每次接包后新建一个I/O线程,整体是单个文件
  2. player应该是self,这个类名叫Player,现在已经改成全局变量ROLE了

各角色对应的序号我注释在文件里了,或者也可以去找一下abstraction.py