这个程序是基于 itchat,用 Python3 写成的狼人杀面杀助手,用于在微信上作为机器人法官。
目前此程序在实战中使用了4次,但是不是系统性地测试,可能依然不太稳定。
理论上只要成功安装 pyaudio 和 itchat 即可运行,而这两个依赖项均同时支持 Linux, Mac 和 Windows。不过,我只在 Linux 和 Windows 上测试了程序。
我在 Windows 7 和 Ubuntu 16.10 上用 PyInstaller 打包了程序,所以目前 64 位的 Windows 和 Linux 系统可以免安装运行啦。只需在 Release 界面下载对应的压缩包,然后运行 werewolf_server.exe
(Windows)或者 werewolf_server
(Linux)即可。
有时 PyInstaller 在打包时会漏掉一些依赖项,如果在免安装运行的时候,程序刚启动就出现错误,则很可能是打包的问题,可以尝试直接运行源代码;如果程序在运行过程中才崩溃,则很可能是代码本身的 BUG。
对于没有完成打包的系统(比如 32 位系统或者 Mac),也可以通过直接运行源代码的方式执行程序。
若要直接运行源代码,请先安装 Python3.5。可以参考这篇文章 。
程序的源代码可以在 Release 界面的 Source Code 链接或者 Clone or Download 的 Download ZIP 链接下载。
程序需要以下依赖项:
可以使用 pip 安装依赖项。
打开“终端”应用,执行以下命令:
sudo pip3 install pyaudio
sudo pip3 install itchat
(这些指令需要用系统的登录密码来授权)
之后就可以用 python3 运行程序了:
cd <储存代码的文件夹路径>
python3 werewolf_sever.py
打开命令行(按 Win + R
,输入 cmd
然后确定),执行以下命令:
py -3 -m pip install pyaudio
py -3 -m pip install itchat
之后就可以用 python 运行程序了:
cd <储存代码的文件夹路径>
py -3 werewolf_server.py
运行程序后,itchat 会弹出微信登录二维码,用微信扫描后在手机上确认登录即可成为法官。
提示:
werewolf_server.py
中的 GameController.is_game_ended
方法直接 return
以阻止游戏结束(没有返回值)。否则,由于只有一位玩家,程序会在第一晚认为刀边成功。用微信向法官发送以下内容即可执行相应的指令(如果法官是自己,可以用文件传输助手发送):
注意:目前游戏是刀边规则,暂未添加屠城规则。
ClientController
与 itchat 的通信此处用于记录开发过程中遇到过的问题: