добавил много комментариев, везде, кроме Mathematics.py

This commit is contained in:
2022-12-26 19:27:51 +07:00
parent fea2530727
commit 957a54208f
4 changed files with 96 additions and 41 deletions
+25 -18
View File
@@ -1,20 +1,27 @@
def add_new_event(): def add_new_event() -> dict:
name = input("Введите название ивента\n") """
description = input("Введите описание ивента\n") Создаёт новый ивент в систему
:return: Dict - json объект, в нём либо ошибка, либо созданный элемент
"""
name = input("Введите название ивента\n") # получаю name
description = input("Введите описание ивента\n") # получаю description
try: try:
well = input("Этот ивент хороший?\n") well = input("Этот ивент хороший?\n") # получаю well
if well == "True": if well == "True": # временный костыль
well = True well = True
else: else:
well = False well = False
# TODO заменить костыль
except Exception as e: except Exception as e:
return e return {"err": e}
variants = input("Введите варианты развития ивентов, разделённые */!/*\n").split("*/!/*") variants = input("Введите варианты развития ивентов, разделённые */!/*\n").split("*/!/*") # получаю variants
consequence = input("Введите функции которые выполнятся при варианте ивента, " consequence = input("Введите функции которые выполнятся при варианте ивента, "
"разделённые */!/*\n").split("*/!/*") "разделённые */!/*\n").split("*/!/*") # получаю consequence
probability_consequence = [int(i) for i in input("Введите вероятности вариантов ивентов," probability_consequence = [int(i) for i in input("Введите вероятности вариантов"
" разделённые */!/*\n").split("*/!/*")] " ивентов, разделённые */!/*\n"
if len(variants) == len(consequence) == len(probability_consequence): "").split("*/!/*")] # получаю probability_consequence
if len(variants) == len(consequence) == len(probability_consequence): # если все длины сошлись
response = { response = {
"name": name, "name": name,
"description": description, "description": description,
@@ -23,18 +30,18 @@ def add_new_event():
"probability_consequence": probability_consequence, "probability_consequence": probability_consequence,
"probability": 50, "probability": 50,
"well": well "well": well
} } # собираю json объект для сохранения
from modules.DB import UseDB from modules.DB import UseDB # импортирую базу
db = UseDB("events") db = UseDB("events") # соединяюсь
db.insert_document(response) db.insert_document(response) # записываю объект
return response return response # возвращаю его
else: else:
return "Длины variants, consequence и probability_consequence не равны" return {"err": "Длины variants, consequence и probability_consequence не равны"}
def main(): def main():
while True: while True:
answer = input("Что сегодня сделаем?\n") answer = input("Что сегодня сделаем?\n") # получаем вопрос
if answer == "добавить эвент": if answer == "добавить эвент":
print(add_new_event()) print(add_new_event())
else: else:
+37 -4
View File
@@ -2,20 +2,53 @@ from pymongo import MongoClient
class UseDB: class UseDB:
"""
Класс для работы с базой данных
"""
def __init__(self, collection_name): def __init__(self, collection_name):
self.series_collection = None self.series_collection = None
self.client = MongoClient('localhost', 27017) self.client = MongoClient('localhost', 27017)
self.db = self.client['toads'] self.db = self.client['toads']
self.series_collection = self.db[collection_name] self.series_collection = self.db[collection_name]
def find_document(self, elements): def find_document(self, elements: dict) -> list:
"""
Функция поиска элемента в базе данных
:param elements: dict - элемент, который надо искать
:return: list - сам элемент
"""
return [x for x in self.series_collection.find(elements)] return [x for x in self.series_collection.find(elements)]
def insert_document(self, data): def insert_document(self, data: dict) -> list:
"""
Функция добавления элемента в базу данных
:param data: dict - элемент, который надо добавить
:return: list - созданный элемент
"""
return self.series_collection.insert_one(data).inserted_id return self.series_collection.insert_one(data).inserted_id
def update_document(self, query_elements, new_values): def update_document(self, query_elements: dict, new_values: dict) -> None:
"""
Функция обновления элемента в базе данных
:param query_elements: dict - элемент, который надо обновить
:param new_values: dict - элемент, этот самый элемент
:return: None
"""
self.series_collection.update_one(query_elements, {'$set': new_values}) self.series_collection.update_one(query_elements, {'$set': new_values})
def del_document(self, query_elements): def del_document(self, query_elements: dict) -> None:
"""
Функция удаления элемента в базу данных
:param query_elements: dict - элемент, который надо удалить
:return: None
"""
self.series_collection.delete_one(query_elements) self.series_collection.delete_one(query_elements)
+33 -18
View File
@@ -3,29 +3,44 @@ import pygame_menu
import configparser import configparser
def set_difficulty(value, _): def set_difficulty(value: dict, _) -> None:
"""
Функция сохраняет сложность временную переменную
:param value: dict - тут лежит, всё что программа знает о сложности
:param _: мы не знаем, что это такое, если бы мы знали, что это такое, но мы не знаем, что это такое
:return: None
"""
global difficulty global difficulty
difficulty = value[0][0] difficulty = value[0][0]
def start_the_game(): def start_the_game() -> None:
config = configparser.ConfigParser() """
config.read('conf/config.ini') Функция запуска игры
config['Settings']['difficulty'] = difficulty
with open('conf/config.ini', 'w') as configfile: :return: None
config.write(configfile) """
menu.toggle() config = configparser.ConfigParser() # создаю объект ConfigParser
config.read('conf/config.ini') # читаю файл
config['Settings']['difficulty'] = difficulty # перезаписываю сложность
with open('conf/config.ini', 'w') as configfile: # открываю файл для записи
config.write(configfile) # записываю
menu.toggle() # останавливаю меню
difficulty = "Простая" difficulty = "Простая" # временная переменная для сложности
pygame.init() pygame.init() # запускаю pygame
surface = pygame.display.set_mode((600, 400)) surface = pygame.display.set_mode((600, 400)) # создаю полотно
mytheme = pygame_menu.themes.THEME_DARK.copy() mytheme = pygame_menu.themes.THEME_DARK.copy() # создаю свою тему
mytheme.background_color = pygame_menu.baseimage.BaseImage(image_path='styles/background.jpg') mytheme.background_color = pygame_menu.baseimage.BaseImage(image_path='styles/background.jpg')
menu = pygame_menu.Menu('Welcome', 600, 400, theme=mytheme) # натягиваю свой background
menu.add.label("Сложность") menu = pygame_menu.Menu('Welcome', 600, 400, theme=mytheme) # создаю меню
menu.add.label("Сложность") # добавляю label
menu.add.selector('', [('Простая', 1), ('Средняя', 2), ('Сложная', 3), ('Проигрывать весело', 4)], menu.add.selector('', [('Простая', 1), ('Средняя', 2), ('Сложная', 3), ('Проигрывать весело', 4)],
onchange=set_difficulty) onchange=set_difficulty) # добавляю selector с выбором сложности
menu.add.button('Play', start_the_game) menu.add.button('Play', start_the_game) # добавляю кнопку начала игры
menu.add.button('Quit', pygame_menu.events.EXIT) menu.add.button('Quit', pygame_menu.events.EXIT) # добавляю кнопку выхода
menu.mainloop(surface) menu.mainloop(surface) # запускаю меню