добавил много комментариев, везде, кроме Mathematics.py
This commit is contained in:
+25
-18
@@ -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
@@ -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
@@ -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) # запускаю меню
|
||||||
|
|||||||
Reference in New Issue
Block a user