diff --git a/bot/main.py b/bot/main.py index 96aa261..26effb4 100644 --- a/bot/main.py +++ b/bot/main.py @@ -79,19 +79,37 @@ async def handle_webapp_data(message: types.Message): total_base_sum = sum((t['dice'][0] + t['dice'][1]) * 2 if t['dice'][0] == t['dice'][1] else t['dice'][0] + t['dice'][1] for t in throws) total_final_sum = sum(calculate_throw_sum(t) for t in throws) +# Обновляем подсчет статистики + total_throws = len(throws) + avg_sum = total_base_sum / total_throws if total_throws > 0 else 0 + avg_sum_with_minus = total_final_sum / total_throws if total_throws > 0 else 0 + doubles = sum(1 for t in throws if t['dice'][0] == t['dice'][1]) + + # Находим максимальный и минимальный броски с учетом дублей + throws_with_sums = [(t, calculate_throw_sum(t)) for t in throws] + max_throw = max(throws_with_sums, key=lambda x: x[1]) + min_throw = min(throws_with_sums, key=lambda x: x[1]) + + # Формируем сообщение response = "🎯 Игра завершена!\n\n" response += f"📊 Статистика игры:\n" response += f"• Всего бросков: {total_throws}\n" - response += f"• Общая сумма: {total_final_sum}" - + response += f"• Общая сумма: {total_final_sum}\n" + if total_base_sum != total_final_sum: unused_sum = total_base_sum - total_final_sum - response += f" (без минусов: {total_base_sum})\n" + response += f" (без минусов: {total_base_sum})\n" response += f"• Неиспользовано: {unused_sum}\n" response += f"• Эффективность: {(total_final_sum / total_base_sum * 100):.1f}%\n" + response += f"• Средняя сумма: {avg_sum_with_minus:.1f} \n" + response += f" (без минусов: {avg_sum:.1f})\n" else: response += "\n" + response += f"• Средняя сумма: {avg_sum:.1f}\n" + + response += f"• Дублей выпало: {doubles}\n" + # Добавляем последние броски response += "\n🎲 Последние броски:\n"