用于玩飞镖的命令行助手和库
pydartz的Python项目详细描述
A Python2/3 assistant (and library) for playing darts
和你的朋友一起玩,跟踪你的飞镖得分!
功能
- 任意起始值(501301,任意正数, …)
- 无限数量的玩家
- 分数可以是总和(即总访问次数)或逐投通过
- 完成建议
- 球员数据库,以跟踪球员的表现(平均, 高分、完成等)
- 基本功能无外部依赖关系
即将推出
待办事项
- 重新访问饰面选项(例如56、46)
- 全面测试覆盖率
- python2 unicode支持
- 检查歌曲版权
安装
来自pypi包
pip install pydartz
来源
获取源代码
git clone https://github.com/pylipp/pydartz cd pydartz
安装到virtualenv(我喜欢使用virtualenvwrapper)
mkvirtualenv --python=$(which python3) pydartz make install make test
或者,使用pip安装到~/.local。
pip install --user -e .
也可以安装声音和直方图支持
pip install simpleaudio==1.0.1 pip install -e git+https://github.com/pylipp/data_hacks.git@refactoring#egg=data_hacks
使用Python2.7、3.5和3.6在Debian上测试。
用法
命令行助手
在命令行中执行pydartz,开始一个经典的501游戏。这个 安装说明应不言而喻。
当游戏开始时,程序期望玩家的分数作为输入。 有多种选择:
- 你自己总结了这次访问的三个方面。假设你得了60分, 5和1,即总共66个。键入66d并按回车键。这个 后缀d表示您的d一个。
- 每次投掷后直接进入。假设你得了三分19,那么 键入57并按回车键。提示显示你有两个飞镖 左边。重复或使用方法1。
- 你失败了。键入b,然后按回车键。
- 未处理无效输入,请在下一个输入正确的值 时间。
- 程序会考虑一些约束条件,以检查 输入有效(例如,总就诊金额<;=180)。试着欺骗它然后 如果发现问题,请提交问题。
当游戏结束时(即一个玩家赢得了指定的号码 ,程序会询问您是否要再次播放。回答
- y(是)如果您希望使用相同的设置重新匹配
- n(否)如果要再次播放,但要重新定义设置
- q(quit)如果要退出应用程序
库
pydartz提供了一个包含DART辅助功能的API 进入定制项目。子类communication.CommunicatorBase, 创建一个game.Game对象和run()对象!注意这个电话 阻止,直到用户决定退出。你可能会决定在 一根单独的线。
我有一个覆盆子/arduino/ros project。自定义通信器 使用ros发布器将信息转发到lcd,获取 字符宽度有限。实现输入请求 使用ros客户端调用服务器(arduino监听 按键)。
我可以看到一个gui正在库的顶部构建。
重要
最后一次访问必须一次一次地进入。否则, 每次访问的投球总数评估不正确!
要显示玩家统计信息,请键入 pydartz --stats <player_name>。你可以输入任意数目的名字。 没有名字,所有玩家的信息都被打印出来。
另外,请参见pydartz --help的输出。
玩得开心!
示例
观看MVG轻松地锁定一个9飞镖:
> pydartz Nr of players: 1 Name of player 1: MVG Start value: 501 Nr of legs: 1 MVG has 501 and three darts left. MVG's score: 180 MVG has 321 and three darts left. MVG's score: 180 MVG has 141 and three darts left. Finish options: T20 T19 D12 MVG's score: 60 MVG has 81 and two darts left. Finish options: T19 D12 T15 D18 MVG's score: 57 MVG has 24 and one dart left. MVG's score: 24 MVG: 1 ================================================================================ > pydartz -s MVG MVG: Legs won: 1 Average: 167.00 Highscore: 180 Finishes: 141: 1 Darters: 9-darter: 1