3DP3邻孤传选号器 - 开发者文档
目录
项目结构
邻孤传选号器/
├── main.py # 主程序文件
├── requirements.txt # 依赖包列表
├── README.md # 项目说明
├── CHANGELOG.md # 更新日志
├── 启动程序.bat # Windows启动脚本
├── data/ # 数据文件夹(Excel导出)
├── logs/ # 日志文件夹
├── registration/ # 注册系统模块
│ ├── __init__.py
│ ├── client_license_validator.py # 客户端许可证验证
│ ├── ftp_manager.py # FTP管理器
│ ├── production_registration_core.py # 注册核心
│ ├── 注册管理工具.py # 注册管理工具
│ └── keys/ # 密钥文件夹
├── docs/ # 文档文件夹
│ ├── 用户手册.md
│ ├── 安装指南.md
│ └── 开发者文档.md
└── .trial_history.json # 试用历史记录(隐藏文件)
技术栈
核心依赖
- Python 3.6+:编程语言
- Tkinter:GUI框架(Python标准库)
- requests:HTTP请求库
- pandas:数据处理库
- openpyxl:Excel文件操作
- cryptography:加密库(用于许可证验证)
标准库
tkinter:图形界面threading:多线程datetime:日期时间处理re:正则表达式os:操作系统接口json:JSON数据处理sys:系统相关参数和函数logging:日志系统functools:函数工具typing:类型提示
代码架构
主要类
LinGuChuanSelector
主应用程序类,负责:
- GUI界面创建和管理
- 数据获取和处理
- 邻孤传分析
- 推荐号码生成
- 历史回测
- 注册系统管理
核心函数
数据获取
_fetch_single_data(data_type): 获取单个数据类型的数据_fetch_all_data_thread(): 多线程获取所有数据_parse_data(text, data_type): 解析原始数据文本
邻孤传分析
_analyze_lgch_for_number(number): 对指定号码进行邻孤传分析_generate_recommendations_for_lgch(chuan_hao, lin_hao, gu_hao): 生成推荐号码
合尾邻孤传分析(新功能)
_calculate_hewei(number): 计算号码的合尾(个位数字之和的个位数)_get_hewei_group(hewei): 获取合尾所属的组(05、16、27、38、49)_is_adjacent_groups(group1, group2): 判断两个合尾组是否相邻_analyze_hewei_lgch(current_hewei, previous_hewei): 分析合尾的邻孤传情况statistics_hewei_lgch(): 统计所有历史数据的合尾邻孤传情况test_hewei_lgch_ratio(): 测试自定义期数的合尾邻孤传出号比例export_hewei_result(): 导出合尾分析结果到Excel文件
回测功能
start_backtest_main(): 启动回测主函数backtest_thread(): 回测线程函数period_backtest_thread(): 期号回测线程_calculate_all_backtest_stats(): 计算全量回测统计
注册系统
init_registration_system(): 初始化注册系统check_activation_status(): 检查激活状态activate(): 激活软件start_trial(): 开始试用
核心模块
1. 数据获取模块
位置:main.py 中的 _fetch_single_data 和相关函数
功能:
- 从互联网获取开奖数据
- 解析原始文本数据
- 数据验证和清洗
数据源:
DATA_SOURCES = {
'3D': '[数据源地址已隐藏]
'P3': '[数据源地址已隐藏]
}
2. 邻孤传分析模块
位置:main.py 中的 _analyze_lgch_for_number 函数
算法:
- 传号:上期开奖号码
- 邻号:±1号码(0和9是邻码)
- 孤码:其他号码
3. 推荐生成模块
位置:main.py 中的 _generate_recommendations_for_lgch 函数
规则:
- 形态1:1传+2邻
- 形态2:1传+1邻+1孤
显示优化(v3.1):
- 每行显示10个号码(原为5个)
- 完全显示所有生成的号码(不再限制100组)
- 格式统一,每个号码占3个字符宽度,右对齐
4. 合尾邻孤传分析模块(新功能)
位置:main.py 中的合尾分析相关函数
核心函数:
_calculate_hewei(number): 计算合尾值(个位数字之和的个位数)_get_hewei_group(hewei): 获取合尾所属的组_is_adjacent_groups(group1, group2): 判断两个组是否相邻_analyze_hewei_lgch(current_hewei, previous_hewei): 分析合尾的邻孤传情况
分组规则:
合尾分组 = {
0: '05', 5: '05',
1: '16', 6: '16',
2: '27', 7: '27',
3: '38', 8: '38',
4: '49', 9: '49'
}
相邻关系:
- 05 ↔ 49 ↔ 16 ↔ 27 ↔ 38 ↔ 05(循环相邻)
判断逻辑:
- 传:当前期合尾和上一期合尾属于同一组
- 邻:当前期合尾和上一期合尾是相邻组
- 孤:当前期合尾和上一期合尾既不相邻,也不相同
5. 回测模块
位置:main.py 中的回测相关函数
功能:
- 历史数据回测
- 期号回测
- 统计计算
改进(v3.1):
- 回测过程中显示每期的推荐号码、开奖号码和成功/失败状态
- 提供更详细的回测反馈
- 自动跳转到回测结果标签页
6. Excel导出模块
位置:main.py 中的导出相关函数
功能:
- 回测结果导出
- 合尾分析结果导出
改进(v3.1):
- 所有Excel文件自动保存到
data文件夹 - 如果data文件夹不存在,程序会自动创建
- 文件名包含数据类型和日期,方便管理
7. 注册系统模块
位置:registration/ 目录
组件:
ClientLicenseValidator:客户端许可证验证FTPManager:FTP服务器管理- 注册管理工具
开发环境
环境设置
- 安装Python
# 检查Python版本
python --version
- 创建虚拟环境(推荐)
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
- 安装依赖
pip install -r requirements.txt
开发工具
- IDE:推荐使用 PyCharm、VSCode 或 Cursor
- 版本控制:Git
- 调试工具:Python内置调试器(pdb)
代码规范
命名规范
- 类名:大驼峰(PascalCase),如
LinGuChuanSelector - 函数名:小写下划线(snake_case),如
_fetch_single_data - 变量名:小写下划线(snake_case),如
latest_data - 常量名:大写下划线(UPPER_SNAKE_CASE),如
DATA_SOURCES
代码风格
- 遵循 PEP 8 代码风格指南
- 使用4个空格缩进
- 行长度不超过120字符
- 函数和类添加文档字符串
注释规范
def function_name(param1, param2):
"""
函数功能说明
Args:
param1: 参数1说明
param2: 参数2说明
Returns:
返回值说明
"""
pass
日志规范
使用 logging 模块记录日志:
import logging
logger = logging.getLogger(__name__)
logger.info("信息日志")
logger.warning("警告日志")
logger.error("错误日志", exc_info=True)
扩展开发
添加新功能
- 在GUI中添加新控件
- 在
create_widgets()方法中添加 - 绑定事件处理函数
- 使用
@require_activation装饰器保护需要激活的功能
- 添加新的分析方法
- 创建新的分析函数
- 在GUI中调用
- 使用
self.right_notebook.select()自动跳转到结果标签页
- 添加新的数据源
- 在
DATA_SOURCES中添加 - 实现数据解析逻辑
- 添加新的分析类型(参考合尾分析实现)
- 创建分析函数(如
_calculate_xxx,_analyze_xxx) - 创建统计函数(如
statistics_xxx) - 创建测试函数(如
test_xxx_ratio) - 创建导出函数(如
export_xxx_result) - 在GUI中添加相应的按钮和输入框
添加新彩种
- 更新数据源
DATA_SOURCES = {
'3D': '[数据源地址已隐藏]
'P3': '[数据源地址已隐藏]
'P5': '[数据源地址已隐藏] # 新彩种
}
- 更新数据类型选择
- 在GUI中添加新的选项
- 更新数据处理逻辑
自定义选号规则
- 修改推荐生成函数
def _generate_recommendations_for_lgch(self, chuan_hao, lin_hao, gu_hao):
# 添加自定义规则
pass
- 添加新的形态
- 在
_generate_recommendations_for_lgch中添加新的组合逻辑
调试技巧
日志调试
查看日志文件:
# Windows
type logs\app.log
# Linux/Mac
cat logs/app.log
断点调试
使用 pdb 调试器:
import pdb
pdb.set_trace()
测试数据
使用测试数据验证功能:
test_number = "298"
chuan_hao, lin_hao, gu_hao = self._analyze_lgch_for_number(test_number)
print(f"传号: {chuan_hao}, 邻号: {lin_hao}, 孤码: {gu_hao}")
性能优化
多线程
数据获取和回测使用多线程,避免GUI冻结:
threading.Thread(target=function, daemon=True).start()
UI更新
批量更新UI,减少频繁的 root.after() 调用:
# 批量更新
updates = []
# ... 收集更新
for update in updates:
self.root.after(0, update)
数据处理
- 使用列表推导式提高效率
- 避免重复计算
- 缓存常用数据
贡献指南
提交代码
- Fork项目
- 创建功能分支
- 提交更改
- 推送到分支
- 创建Pull Request
代码审查
- 确保代码符合规范
- 添加必要的注释
- 更新相关文档
- 测试新功能
许可证
版权所有:© 2025 东湖沙湾论彩彩迷群
维护者:摸球校尉陈八七
组织:东湖沙湾论彩彩迷群