Изменения:
1. Ошибка "WHERE game_sessions.user_id IS NULL" + игра получает user_id из бд после создания пользователя, авторизации 2. Провиль пользователя + отображается никнейм 3. Уровни + добавлена рамка с 100 уровнями + добавлена система смены цвета кнопки уровня в зависимости от состояния (пройден/не пройден) 4. Окно победы + добавлено отображение никнейма
This commit is contained in:
parent
9f5d36d1a1
commit
5d34162267
13 changed files with 5512 additions and 234 deletions
|
|
@ -1,34 +1,48 @@
|
|||
import logging
|
||||
from sqlalchemy import func
|
||||
from database.db_events import get_user_progress
|
||||
from database.db_session import get_session
|
||||
from sqlalchemy.exc import SQLAlchemyError
|
||||
from database.models import GameSession
|
||||
|
||||
|
||||
def save_game_session(user_id, level, score, duration, health, hunger, sleepiness):
|
||||
"""Сохранение игрового процесса в таблицу GameSessions."""
|
||||
def save_game_session(user_id, level, score, steps, duration=0, health=100, hunger=0, sleepiness=0):
|
||||
"""Сохранение игрового прогресса."""
|
||||
session = get_session()
|
||||
try:
|
||||
# Создаем новый объект GameSession
|
||||
game_session = GameSession(
|
||||
session.add(GameSession(
|
||||
user_id=user_id,
|
||||
level=level,
|
||||
score=score,
|
||||
steps=steps,
|
||||
duration=duration,
|
||||
health=health,
|
||||
hunger=hunger,
|
||||
sleepiness=sleepiness,
|
||||
)
|
||||
session.add(game_session)
|
||||
session.commit() # Сохраняем данные в таблице
|
||||
print(f"Игровой процесс для пользователя {user_id} на уровне {level} успешно сохранен.")
|
||||
except SQLAlchemyError as e:
|
||||
sleepiness=sleepiness
|
||||
))
|
||||
session.commit()
|
||||
logging.info(f"Сессия сохранена: user_id={user_id}, level={level}, score={score}")
|
||||
except Exception as e:
|
||||
session.rollback()
|
||||
print(f"Ошибка при сохранении игрового процесса: {e}")
|
||||
finally:
|
||||
session.close()
|
||||
logging.error(f"Ошибка при сохранении игровой сессии: {e}")
|
||||
raise
|
||||
|
||||
|
||||
def print_user_progress(user_id):
|
||||
"""Печать прогресса пользователя из таблицы GameSessions."""
|
||||
"""
|
||||
Печать прогресса пользователя из таблицы GameSessions.
|
||||
|
||||
:param user_id: ID пользователя
|
||||
"""
|
||||
if not user_id:
|
||||
logging.error("user_id отсутствует. Невозможно получить прогресс.")
|
||||
return
|
||||
|
||||
progress = get_user_progress(user_id)
|
||||
if not progress:
|
||||
print(f"У пользователя с ID {user_id} нет сохраненного прогресса.")
|
||||
return
|
||||
|
||||
print(f"Прогресс пользователя (user_id={user_id}):")
|
||||
for session in progress:
|
||||
print(f"Уровень: {session.level}, Очки: {session.score}, Время: {session.duration} секунд")
|
||||
print(f"- Уровень: {session.level}, Очки: {session.score}, Время: {session.duration} сек")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue