Files
abot/plugins/lucky_pot/readme.md
2025-08-13 17:36:14 +08:00

200 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
好,我给你整理一份 **“拼手气大奖池” Python 版多人积分消耗游戏设计文档**,你直接可以用它做开发。
我会从 **玩法逻辑 → 系统设计 → 数据结构 → 流程图 → 反刷积分策略 → 趣味化细节** 来写。
---
# 🎯 拼手气大奖池 — 游戏设计文档
## 1. 游戏定位
* **目标**:多人同时参与,通过一次性高额入场费 + 奖池抽水,快速消耗富余积分。
* **核心卖点**
* 开奖瞬间的刺激与悬念。
* 多人参与,竞争氛围浓。
* 奖池分配随机,能制造“欧皇”和“非酋”的话题性。
* **玩法周期**30\~60秒一局支持高频次参与。
---
## 2. 玩法规则
1. 游戏开始时,系统开放“大奖池”房间。
2. 玩家支付固定入场费100积分进入。
3. 到达房间人数上限可设10人或倒计时结束30秒房间封闭并开奖。
4. 系统收取奖池总额的抽水20%),剩余部分进行分配:
* 按随机比例分配给所有参与者(保证有输有赢)。
* 可设置“欧皇大奖”机制1人随机获得额外10\~30%积分。
5. 本局结束后,所有人的积分即时更新,可立即参与下一局。
---
## 3. 核心参数
| 参数 | 示例值 | 说明 |
| ------ | ------ | ------------ |
| 入场费 | 100 积分 | 所有人一致 |
| 最大人数 | 10 | 可动态调整 |
| 倒计时 | 30 秒 | 人数不到也开奖 |
| 抽水比例 | 20% | 系统留存 |
| 欧皇奖励概率 | 20% | 额外加成 |
| 分配算法 | 随机比例 | 保证总分配不超过奖池余额 |
---
## 4. 系统设计
### 4.1 模块划分
1. **用户积分模块**
* 获取当前玩家积分
* 增减积分(扣入场费/加奖励)
* 防止负数积分
2. **房间管理模块**
* 创建房间(状态:等待中/开奖中/已结束)
* 加入房间(扣除入场费)
* 倒计时触发开奖
* 人满提前开奖
3. **开奖模块**
* 计算奖池金额
* 扣除抽水
* 生成随机分配结果
* 欧皇额外加成
4. **交互模块**
* 文本 + Emoji 显示结果
* 倒计时提醒(⌛)
* 欧皇高光提示(🏆)
* 输家调侃提示(💔)
---
## 5. 数据结构设计
### 5.1 玩家信息
```python
{
"user_id": "U001",
"nickname": "张三",
"points": 1200
}
```
### 5.2 房间信息
```python
{
"room_id": "R20250813",
"status": "waiting", # waiting | drawing | finished
"entry_fee": 100,
"max_players": 10,
"players": ["U001", "U002", "U003"],
"start_time": 1690000000,
"countdown": 30
}
```
### 5.3 开奖结果
```python
{
"room_id": "R20250813",
"winner_list": [
{"user_id": "U001", "nickname": "张三", "reward": 420},
{"user_id": "U002", "nickname": "李四", "reward": 5}
],
"house_cut": 200 # 抽水金额
}
```
---
## 6. 游戏流程图
```
[创建房间]
[等待玩家加入] ← 玩家支付入场费
↓(人数满 或 倒计时结束)
[开奖计算] → 扣除抽水 → 欧皇加成 → 随机分配
[公布结果] → 更新积分
[进入下一局]
```
---
## 7. 反刷 & 防作弊策略
1. **冷却时间**:同一玩家连续参加需间隔 5 秒,防止脚本刷。
2. **最小积分门槛**:积分低于入场费无法参与。
3. **抽水**20% 或更多,确保积分总量持续下降。
4. **欧皇概率可控**:防止同一人连续中奖。
5. **结果随机种子**:结合时间戳+玩家ID防止预测。
---
## 8. 趣味化细节
* **倒计时提示**
```
⏳ 大奖池开奖倒计时 10 秒!快上车!
```
* **开奖动画**
```
🧧 开奖中...
💥💥💥
```
* **结果文案**
* 欧皇:
```
🏆 张三成为本轮欧皇!一把拿走 420 积分!
```
* 非酋:
```
💔 李四5积分到手... 这也太离谱了!
```
---
## 9. Python实现建议
* 数据存储SQLite方便调试或 Redis高并发
* 交互:命令行/群聊机器人QQ/微信)。
* 定时器:`threading.Timer` 或 `asyncio`。
* 奖池分配算法:
```python
import random
def distribute_prizes(players, total_points):
rewards = []
remaining = total_points
for i in range(len(players)-1):
share = random.randint(1, remaining - (len(players)-i-1))
rewards.append(share)
remaining -= share
rewards.append(remaining)
random.shuffle(rewards)
return list(zip(players, rewards))
```
---
如果你要做成可直接跑的 Python 版本,我可以帮你按这个文档直接写一个 **多人拼手气大奖池可执行程序**,带 emoji 文案和积分抽水逻辑。这样你可以马上在群里测试积分消耗效果。
你要我帮你直接写这个完整代码吗?这样你今晚就能跑起来测试。