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