Исправления:

1. "Пользователь не найден"
+ заполнила таблицы из бд Dogs, Qoestions.
2. Меню паузы
+ оно больше не появляется в главном меню, при выборе собаки и уровня.
3. Окно победы
+ не открывается куча окон, собака не двигается, пока окно победы активно
+ добавлена кнопка "выйти в главное меню"
3. Окно регистрации
+ кнопка "посмотреть пароль"
4. таблица GameSessions
+ сохранение игрового процесса в таблицу GameSessions
+ одинаковые данные переносятся автоматически в таблицу GameSessions
+ собранные косточки и тп заполняют только таблицу GameSessions
5. Окно "Профиль пользователя"
+ нет ошибки открытия окна
+ корректное сохранение игрового процесса (уровни, косточки)
6. Окно "Магазин"
+ не кликабельная
+ кнопка "назад"
- shop_ui.py
7. Окно "База знаний"
+ не кликабельная
+ кнопка "назад"
- knowledge_ui.py
This commit is contained in:
Xatiko 2024-11-29 19:54:28 +03:00
parent 815f432536
commit 9f5d36d1a1
20 changed files with 3093 additions and 157 deletions

View file

@ -0,0 +1,67 @@
from database.db_session import get_session
from database.models import Dogs
DOG_CHARACTERS = {
"Chihuahua": {
"characteristics": "Скорость: 8, Выносливость: 5, Умение: Быстрое уклонение.",
"behavior": "Энергичный, часто лайливый.",
"care_info": "Нуждается в регулярной чистке зубов и когтей.",
"admin_comments": "Идеален для активных владельцев."
},
"Corgi": {
"characteristics": "Скорость: 6, Выносливость: 7, Умение: Дополнительный прыжок.",
"behavior": "Дружелюбный, легко обучаемый.",
"care_info": "Важно контролировать вес из-за коротких лап.",
"admin_comments": "Подходит для семей с детьми."
},
"Golden Retriever": {
"characteristics": "Скорость: 7, Выносливость: 8, Умение: Увеличенные очки за правильные ответы.",
"behavior": "Очень умный и добрый.",
"care_info": "Требует регулярной чистки шерсти.",
"admin_comments": "Идеален для владельцев, ищущих верного друга."
},
"Husky": {
"characteristics": "Скорость: 9, Выносливость: 6, Умение: Ускорение.",
"behavior": "Независимый, требует много активности.",
"care_info": "Плохо переносит жару, требует частых прогулок.",
"admin_comments": "Для опытных владельцев."
},
"Pomeranian": {
"characteristics": "Скорость: 7, Выносливость: 4, Умение: Уменьшение штрафа за ошибки.",
"behavior": "Веселый, преданный.",
"care_info": "Шерсть требует ежедневного ухода.",
"admin_comments": "Идеален для жизни в квартире."
},
"Pug": {
"characteristics": "Скорость: 5, Выносливость: 9, Умение: Сохраняет здоровье при столкновениях.",
"behavior": "Ласковый, склонен к перееданию.",
"care_info": "Внимание к дыханию и физической активности.",
"admin_comments": "Для спокойного образа жизни."
},
"Yorkshire Terrier": {
"characteristics": "Скорость: 6, Выносливость: 5, Умение: Быстрое восстановление характеристик.",
"behavior": "Компактный, умный.",
"care_info": "Требует профессиональной стрижки.",
"admin_comments": "Подходит для маленьких пространств."
}
}
def populate_dogs():
session = get_session()
try:
for breed, data in DOG_CHARACTERS.items():
dog = Dogs(
breed=breed,
characteristics=data['characteristics'],
behavior=data['behavior'],
care_info=data['care_info'],
admin_comments=data['admin_comments']
)
session.add(dog)
session.commit()
print("Таблица Dogs успешно заполнена.")
except Exception as e:
session.rollback()
print(f"Ошибка при заполнении Dogs: {e}")
finally:
session.close()

View file

@ -0,0 +1,34 @@
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."""
session = get_session()
try:
# Создаем новый объект GameSession
game_session = GameSession(
user_id=user_id,
level=level,
score=score,
duration=duration,
health=health,
hunger=hunger,
sleepiness=sleepiness,
)
session.add(game_session)
session.commit() # Сохраняем данные в таблице
print(f"Игровой процесс для пользователя {user_id} на уровне {level} успешно сохранен.")
except SQLAlchemyError as e:
session.rollback()
print(f"Ошибка при сохранении игрового процесса: {e}")
finally:
session.close()
def print_user_progress(user_id):
"""Печать прогресса пользователя из таблицы GameSessions."""
progress = get_user_progress(user_id)
for session in progress:
print(f"Уровень: {session.level}, Очки: {session.score}, Время: {session.duration} секунд")

View file

@ -0,0 +1,99 @@
from database.db_session import get_session
from database.models import Dogs, Questions
DOG_QUESTIONS = {
"Chihuahua": [
{
"question_text": "Почему у Чихуахуа часто возникают проблемы с зубами?",
"helpful_info": "Миниатюрный размер приводит к скоплению налета и зубных отложений.",
},
{
"question_text": "Какая активность лучше всего подходит для Чихуахуа?",
"helpful_info": "Легкие прогулки и домашние игры.",
}
],
"Corgi": [
{
"question_text": "Почему важно контролировать вес Корги?",
"helpful_info": "Избыточный вес может негативно повлиять на суставы.",
},
{
"question_text": "Как можно поддерживать здоровье суставов у Корги?",
"helpful_info": "Обеспечьте умеренную активность и сбалансированное питание.",
}
],
"Golden Retriever": [
{
"question_text": "Почему важно регулярно вычесывать шерсть Голден Ретривера?",
"helpful_info": "Это предотвращает образование колтунов.",
},
{
"question_text": "Какое питание подходит для Голден Ретриверов?",
"helpful_info": "Сбалансированное питание с учетом активности и возраста.",
}
],
"Husky": [
{
"question_text": "Какой климат подходит для Хаски?",
"helpful_info": "Они комфортнее чувствуют себя в холодном климате.",
},
{
"question_text": "Почему Хаски требуют много физической активности?",
"helpful_info": "Эта порода обладает высокой энергией и выносливостью.",
}
],
"Pomeranian": [
{
"question_text": "Как правильно ухаживать за шерстью Померанского шпица?",
"helpful_info": "Ежедневно расчесывать шерсть, чтобы избежать колтунов.",
},
{
"question_text": "Почему важно следить за зубами Померанского шпица?",
"helpful_info": "Они склонны к зубному налету, что может привести к проблемам.",
}
],
"Pug": [
{
"question_text": "Почему мопсы склонны к ожирению?",
"helpful_info": "Их низкая активность и любовь к еде требуют контроля рациона.",
},
{
"question_text": "Какие проблемы с дыханием могут возникнуть у мопсов?",
"helpful_info": "Из-за их плоской морды дыхание может быть затруднено.",
}
],
"Yorkshire Terrier": [
{
"question_text": "Как часто нужно стричь шерсть Йоркширского терьера?",
"helpful_info": "Примерно раз в 4-6 недель для поддержания аккуратного вида.",
},
{
"question_text": "Как ухаживать за шерстью Йоркширского терьера?",
"helpful_info": "Регулярно расчесывать и использовать специальные средства.",
}
]
}
def populate_questions():
session = get_session()
try:
dogs = {dog.breed: dog.dog_id for dog in session.query(Dogs).all()}
for breed, questions in DOG_QUESTIONS.items():
dog_id = dogs.get(breed)
if not dog_id:
print(f"Порода '{breed}' отсутствует.")
continue
for question_data in questions:
question = Questions(
dog_id=dog_id,
question_text=question_data["question_text"],
helpful_info=question_data["helpful_info"]
)
session.add(question)
session.commit()
print("Таблица Questions успешно заполнена.")
except Exception as e:
session.rollback()
print(f"Ошибка при заполнении Questions: {e}")
finally:
session.close()

View file