починил авторизацию, ускорил систему с помощью сервера, сделал спрайты по правильному

This commit is contained in:
2023-02-02 19:08:31 +07:00
parent a451ce7e84
commit 0bfa52f011
14 changed files with 328 additions and 104 deletions
+10 -3
View File
@@ -1,5 +1,6 @@
import pygame as pg
from modules import DB
from modules.sprites import FrogsInBook
def get_frogs_img(name):
@@ -65,9 +66,15 @@ class Book: # Окно с необходимой информацией
i = row + 6
else:
i = row + 9
myimage = pg.image.load(get_frogs_img(frogs[i][0]))
scaled_image = pg.transform.smoothscale(myimage, (34, 34))
screen.blit(scaled_image, (100 + 120 * col + 1, 375 + 40 * row + 1))
all_sprites = pg.sprite.Group()
FrogsInBook(get_frogs_img(frogs[i][0]), 100 + 120 * col + 1, 375 + 40 * row + 1, all_sprites)
all_sprites.draw(screen)
all_sprites.update()
# myimage = pg.image.load(get_frogs_img(frogs[i][0]))
# scaled_image = pg.transform.smoothscale(myimage, (34, 34))
# screen.blit(scaled_image, (100 + 120 * col + 1, 375 + 40 * row + 1))
pg.draw.rect(screen, (0, 0, 0), (100 + 120 * col, 375 + 40 * row, 35, 35),
3) # Рамка с портретом лягушки
text = font.render(f'{frogs[i][0]} - ', True, (255, 255, 255))
+2 -2
View File
@@ -2,6 +2,7 @@ import pygame
import pygame_menu
import configparser
from modules.DB import UseDB
import requests
def set_difficulty(value: dict, _) -> None:
@@ -44,8 +45,7 @@ def start_new_game() -> None:
config['Settings']['sound'] = sound # перезаписываю настройку звука
with open('conf/config.ini', 'w') as configfile: # открываю файл для записи
config.write(configfile) # записываю
db = UseDB("game")
db.create_new_game()
requests.get("http://194.61.1.147:52540/create_new_game")
menu.toggle() # останавливаю меню
+8 -30
View File
@@ -1,44 +1,22 @@
from modules.DB import UseDB
from loguru import logger
import random
import configparser
import requests
def get_random_event():
db = UseDB("events")
response = db.find_document({})
random_event = random.choices([i["_id"] for i in response],
weights=[i["probability"] for i in response])
return db.find_document({"_id": random_event[0]})[0]
response = requests.get("http://194.61.1.147:52540/get_random_event")
return response.json()
def recalculation_events(well):
difficulties = {
"Простая": [5, 5],
"Средняя": [5, 2],
"Сложная": [5, 1],
"Проигрывать весело": [10, 1]
}
config = configparser.ConfigParser()
config.read("conf/config.ini")
difficulty = config['Settings']['difficulty']
db = UseDB("events")
not_well_events = db.find_document({"well": False})
well_events = db.find_document({"well": True})
if well:
for i in not_well_events:
db.update_document({"_id": i["_id"]},
{"probability": i["probability"] + difficulties[difficulty][0]})
ratio = len(not_well_events) * difficulties[difficulty][0] / len(well_events)
for i in well_events:
db.update_document({"_id": i["_id"]}, {"probability": i["probability"] - ratio})
else:
for i in well_events:
db.update_document({"_id": i["_id"]},
{"probability": i["probability"] + difficulties[difficulty][1]})
ratio = len(well_events) * difficulties[difficulty][1] / len(not_well_events)
for i in not_well_events:
db.update_document({"_id": i["_id"]}, {"probability": i["probability"] - ratio})
requests.get("http://194.61.1.147:52540/recalculation_events",
params={
"well": well,
"difficulty": config['Settings']['difficulty']
})
def start_calculating():
+26 -18
View File
@@ -7,16 +7,23 @@ class Game:
def __init__(self):
self.line = None
self.old_color = None
self.interval_x = None
self.interval_y = None
self.colors = [tuple([randrange(50, 256, 40) for _ in range(3)]) for _ in range(10)]
self.interval_x = None
self.colors = [(235, 26, 26), (235, 26, 235), (51, 51, 255),
(255, 128, 0), (51, 255, 153), (255, 255, 0),
(255, 255, 255), (139, 69, 19), (0, 255, 127),
(255, 218, 185), (147, 112, 219), (128, 0, 128),
(128, 128, 0), (47, 79, 79), (139, 0, 0),
(255, 192, 203), (124, 252, 0), (46, 139, 87),
(0, 128, 128), (0, 255, 255)]
self.need_colors = sample(self.colors, 10)
self.intervals_x = [(430, 460), (350, 430), (245, 350), (165, 245), (130, 165), (130, 165), (165, 245),
(245, 350), (350, 430), (430, 460)]
self.intervals_y = [(170, 265), (113, 170), (113, 113), (113, 170), (170, 265), (265, 360), (360, 425),
(425, 425), (365, 425), (265, 365)]
self.line_color = choice(self.colors)
self.line_color = choice(self.need_colors)
self.clock = pg.time.Clock()
self.speed = 15 # Здесь можно менять скорость
self.speed = 25 # Здесь можно менять скорость
self.right = False
self.lose = False
self.corner = 440
@@ -25,25 +32,25 @@ class Game:
self.y = 430
def render(self, screen_move): # Создание круга из случайных цветов и стрелки
pg.draw.arc(screen_move, (self.colors[0]),
pg.draw.arc(screen_move, (self.need_colors[0]),
(120, 90, 350, 350), 0, pi / 5, 7)
pg.draw.arc(screen_move, (self.colors[1]),
pg.draw.arc(screen_move, (self.need_colors[1]),
(120, 90, 350, 350), pi / 5, 2 * pi / 5, 7)
pg.draw.arc(screen_move, (self.colors[2]),
pg.draw.arc(screen_move, (self.need_colors[2]),
(120, 90, 350, 350), 2 * pi / 5, 3 * pi / 5, 7)
pg.draw.arc(screen_move, (self.colors[3]),
pg.draw.arc(screen_move, (self.need_colors[3]),
(120, 90, 350, 350), 3 * pi / 5, 4 * pi / 5, 7)
pg.draw.arc(screen_move, (self.colors[4]),
pg.draw.arc(screen_move, (self.need_colors[4]),
(120, 90, 350, 350), 4 * pi / 5, pi, 7)
pg.draw.arc(screen_move, (self.colors[5]),
pg.draw.arc(screen_move, (self.need_colors[5]),
(120, 90, 350, 350), pi, 6 * pi / 5, 7)
pg.draw.arc(screen_move, (self.colors[6]),
pg.draw.arc(screen_move, (self.need_colors[6]),
(120, 90, 350, 350), 6 * pi / 5, 7 * pi / 5, 7)
pg.draw.arc(screen_move, (self.colors[7]),
pg.draw.arc(screen_move, (self.need_colors[7]),
(120, 90, 350, 350), 7 * pi / 5, 8 * pi / 5, 7)
pg.draw.arc(screen_move, (self.colors[8]),
pg.draw.arc(screen_move, (self.need_colors[8]),
(120, 90, 350, 350), 8 * pi / 5, 9 * pi / 5, 7)
pg.draw.arc(screen_move, (self.colors[9]),
pg.draw.arc(screen_move, (self.need_colors[9]),
(120, 90, 350, 350), 9 * pi / 5, 2 * pi, 7)
pg.draw.line(screen_move, self.line_color, [300, 270], [self.x, self.y], 9)
@@ -64,13 +71,14 @@ class Game:
if color_change:
self.old_color = self.line_color
while self.old_color == self.line_color:
self.line_color = choice(self.colors)
self.line_color = choice(self.need_colors)
self.interval_x = self.intervals_x[self.colors.index(self.old_color)]
self.interval_y = self.intervals_y[self.colors.index(self.old_color)]
self.interval_x = self.intervals_x[self.need_colors.index(self.old_color)]
self.interval_y = self.intervals_y[self.need_colors.index(self.old_color)]
if self.interval_x[0] <= round(self.x) <= self.interval_x[1] and \
((round(self.y) <= self.interval_y[0] == self.interval_y[1]) or
(self.interval_y[0] <= round(self.y) <= self.interval_y[1])):
(self.interval_y[0] <= round(self.y) <= self.interval_y[1]) or
(round(self.y) >= self.interval_y[0] == self.interval_y[1])):
self.scores += 1
self.speed += 10
else:
+22
View File
@@ -0,0 +1,22 @@
import os
import sys
import pygame
def load_image(name, x, y):
fullname = os.path.join(name)
if not os.path.isfile(fullname):
print(f"Файл с изображением '{fullname}' не найден")
sys.exit()
image = pygame.image.load(fullname)
image = pygame.transform.smoothscale(image, (x, y))
return image
class FrogsInBook(pygame.sprite.Sprite):
def __init__(self, img, x, y, *group):
super().__init__(*group)
self.image = load_image(img, 34, 34)
self.rect = self.image.get_rect()
self.rect.x = x
self.rect.y = y