poker/CONGRATULATIONS_SYSTEM.md

198 lines
8.1 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.

# Система поздравлений игрока от ботов
## 🎯 Описание
Боты теперь **поздравляют игрока**, когда он выигрывает с сильной покерной рукой! Вероятность поздравления зависит от редкости и силы руки.
---
## 📊 Вероятности поздравлений по силе руки
| Рука | Ранг | Вероятность | Пример |
|------|------|-------------|--------|
| **Роял-флеш** | 10 | 90% | "A♠ K♠ Q♠ J♠ 10♠ - Легенда!" |
| **Стрит-флеш** | 9 | 80% | "9♥ 8♥ 7♥ 6♥ 5♥ - Невероятно!" |
| **Каре** | 8 | 60% | "K♠ K♥ K♦ K♣ - Впечатляет!" |
| **Фулл-хаус** | 7 | 40% | "Q♠ Q♥ Q♦ 5♠ 5♥ - Красиво!" |
| **Флеш** | 6 | 25% | "A♠ J♠ 9♠ 7♠ 3♠ - Неплохо!" |
| **Стрит** | 5 | 15% | "10♦ 9♠ 8♥ 7♣ 6♦ - Хорошо!" |
| Сет и ниже | ≤4 | 0% | Не поздравляют |
---
## 🤖 Стили поздравлений от разных ботов
### 1. **Виктор "Акула"** (агрессивный)
- **Обычная рука:** "Неплохо сыграно!", "Уважаю!"
- **Сильная:** "Вау, фулл-хаус! 💪", "Монстр-рука!"
- **Очень сильная:** "Роял-флеш?! Респект! 🔥", "НЕВЕРОЯТНО!"
### 2. **Анна "Блефер"** (загадочная)
- **Обычная:** "Интересно сыграно... 😏"
- **Сильная:** "Фулл-хаус? Впечатляет! 👏"
- **Очень сильная:** "Стрит-флеш... Я в восторге! 😮"
### 3. **Дед Михалыч** (старая школа)
- **Обычная:** "Молодец, голубчик!"
- **Сильная:** "Фулл-хаус! Красота! 👴"
- **Очень сильная:** "Роял-флеш! За 50 лет такое редко видел! 😲"
### 4. **Макс "ГТО"** (математик)
- **Обычная:** "Хороший EV!"
- **Сильная:** "Фулл-хаус! Rare! 📊", "Топ 0.1% рук!"
- **Очень сильная:** "Роял-флеш... 0.00154%! 🤯"
### 5. **Катя "Удача"** (суеверная)
- **Обычная:** "Ура! Молодец! 😊"
- **Сильная:** "Фулл-хаус! Удача! 🍀✨"
- **Очень сильная:** "Роял-флеш! ЭТО МАГИЯ! 🎉🍀"
### 6. **Борис "Молчун"** (молчаливый)
- **Обычная:** "Хм. Неплохо."
- **Сильная:** "Фулл-хаус... Ого."
- **Очень сильная:** "Роял-флеш?! ..."
### 7. **Олег "Тильтер"** (эмоциональный)
- **Обычная:** "Ну везёт же... 😒"
- **Сильная:** "Фулл-хаус?! Ладно, красиво 😤"
- **Очень сильная:** "Роял-флеш... Я не верю! 😱"
### 8. **Ирина "Профи"** (профессионал)
- **Обычная:** "GG WP!"
- **Сильная:** "Фулл-хаус. Респект! 💎"
- **Очень сильная:** "Роял-флеш! Incredible! 🎯"
---
## 🎬 Примеры игровых ситуаций
### Ситуация 1: Флеш (25% вероятность)
```
Игрок выигрывает с: A♠ K♠ 9♠ 7♠ 3♠ (Флеш)
Банк: 250 фишек
🎲 Случайный бот (25% шанс):
Макс "ГТО": "Флеш! Статистически сильно! 📊"
```
### Ситуация 2: Фулл-хаус (40% вероятность)
```
Игрок выигрывает с: K♠ K♥ K♦ 8♠ 8♥ (Фулл-хаус)
Банк: 500 фишек
🎲 Случайный бот (40% шанс):
Дед Михалыч: "Фулл-хаус! Красота! Как в старые времена! 👴"
```
### Ситуация 3: Каре (60% вероятность)
```
Игрок выигрывает с: A♠ A♥ A♦ A♣ Q♠ (Каре тузов)
Банк: 800 фишек
🎲 Случайный бот (60% шанс):
Виктор "Акула": "Каре тузов! МОНСТР-РУКА! 💪🔥"
```
### Ситуация 4: Стрит-флеш (80% вероятность)
```
Игрок выигрывает с: 9♥ 8♥ 7♥ 6♥ 5♥ (Стрит-флеш)
Банк: 1200 фишек
🎲 Случайный бот (80% шанс):
Анна "Блефер": "Стрит-флеш до девятки... Я в восторге! 😮✨"
```
### Ситуация 5: Роял-флеш (90% вероятность)
```
Игрок выигрывает с: A♠ K♠ Q♠ J♠ 10♠ (Роял-флеш!)
Банк: 2000 фишек
🎲 Случайный бот (90% шанс):
Макс "ГТО": "РОЯЛ-ФЛЕШ! Математическое чудо! Вероятность 0.00154%! 🤯🎯"
```
---
## ⚙️ Технические детали
### Алгоритм работы:
1. **Проверка победителя**
- Игрок победил? (не бот)
- Есть информация о руке?
2. **Определение вероятности**
- Ранг руки ≥ 5 (стрит или выше)
- Вероятность от 15% до 90%
3. **Выбор бота**
- Случайный бот из активных (не спасовавших)
- Учитывается его личность
4. **Генерация поздравления**
- С помощью LLM (если включён)
- Или запасные фразы по стилю бота
5. **Отправка в чат**
- Задержка 1-2.5 секунды
- Не конфликтует с эмоциональными реакциями
### Интеграция с LLM:
При включенном LLM бот получает контекст:
```
Игрок [Имя] только что ВЫИГРАЛ с рукой "Фулл-хаус"!
Банк: 500 фишек
Это сильная рука!
Поздравь игрока КРАТКО (максимум 5-7 слов), в своём стиле.
```
---
## 🎮 Примеры с LLM (если включён)
**Виктор "Акула":**
- Флеш: "С флешем на терне? Красиво прочитал борд! 🔥"
- Каре: "Каре на ривере?! Вот это хладнокровие! 💪"
**Дед Михалыч:**
- Фулл-хаус: "Эх, молодость! С таким фулл-хаусом я бы в 82-м весь турнир взял!"
- Стрит-флеш: "Святые угодники! Такое в жизни раз видел!"
**Макс "ГТО":**
- Флеш: "Флеш на этой текстуре борда - +EV колл!"
- Каре: "Четыре аута превратились в каре. Probability magic! 📊"
---
## 📝 Файлы изменены
1. **`ai.js`**
- Добавлена `generatePlayerCongratulation()` - генерация поздравления через LLM
- Добавлена `getFallbackCongratulation()` - запасные фразы для каждого стиля
2. **`main.js`**
- Добавлена `generatePlayerCongratulations()` - логика выбора бота и отправки
- Вызывается в `onHandEnd()` после завершения раздачи
---
## 🎯 Результат
Теперь игра стала **более живой и реалистичной**:
- Боты замечают и ценят сильные руки игрока
- Редкие комбинации вызывают восхищение
- Каждый бот поздравляет в своём уникальном стиле
- LLM делает поздравления ещё более контекстуальными
**Пример полного взаимодействия:**
```
[Игрок собрал каре королей и выиграл банк 800 фишек]
Макс "ГТО": "Каре королей! Топ 0.024% рук! 📊" (через 1.2 сек)
```
🎰🃏 **Играйте и получайте заслуженные поздравления!**