Найти - Пользователи
Полная версия: Можно критику пожалуйста?
Начало » Python для новичков » Можно критику пожалуйста?
1 2
Andrey_Golovin
Добрый день, уважаемые!
Дайте пожалуйста критику моему произведению.
Хочу, так сказать, провести работу над ошибками.
FishHook
Andrey_Golovin
 class Pizza(Sprite):
    """Инициализирует пиццу"""
    def __init__(self, screen_game, ai_setting):
        super(Pizza, self).__init__()
        self.screen_game = screen_game
        self.ai_setting = ai_setting
        self.numbers = [0, 59, 118, 177, 236, 295, 354, 413, 472, 531, 590]
        self.rand_pizza = random.shuffle(self.numbers)
        white = (255, 255, 255)
        # Загрузка изображения пиццы.
        self.image = pygame.image.load('image/pizza.bmp')
        self.image.set_colorkey(white)
        self.rect = self.image.get_rect()
        self.screen_rect = screen_game.get_rect()
        self.rand_pizza
        self.x = random.choice(self.numbers)
        # Координаты появления пиццы.
        self.rect.x = (self.x)
        self.rect.y = (70)
        # Флаг ускорения пиццы.
        self.moving_speed = False
    def update_pizza(self):
        if self.moving_speed:
            self.rect.y += self.ai_setting.pizza_drop_speed * 3
        else:
            self.rect.y += self.ai_setting.pizza_drop_speed
    def blitme(self):
        self.screen_game.blit(self.image, self.rect)

1) что такое numbers, откуда взялись эти магические числа?
2) какой смысл несут комментарии в вашем коде? “”“Инициализирует пиццу”“” - гениально, а так никто бы не догадался!
3) Зачем numbers объявлена переменной объекта?
4) Переменная self.rand_pizza не используется никак. Что делает 21-я строка?
5) Переменная self.screen_rect не используется.
6) Зачем скобки в 24-й и 25-й строках?
7) Что означают магические числа в 25-й и 31-й строках?

FishHook
Класс Button - шестикратное дублирование кода.
Andrey_Golovin
FishHook
Andrey_Golovin
1 numbers эти числа взялись из ширины картинки плюс ширина картинки. Для использования координаты X.
5) Переменная self.screen_rect не используется. Переменная используется для проверки
 def pizza_delete(ai_setting, pizza, pizzas, chef, stats, sb, numberspizza):
    """Проверяет достигла ли пицца края экрана и удаляет её"""
    if pizza.rect.bottom >= pizza.screen_rect.bottom:
        pizza.remove(pizzas)
Функцию перенес а переменную забыл((
Что делает 21-я строка?
21 строка случайным образом выбирает координату X из numbers.
Andrey_Golovin
FishHook
Класс Button - шестикратное дублирование кода.
Ух как)) Даже покраснел))) Спасибо!
Andrey_Golovin
Класс Button - шестикратное дублирование кода.
Вот насчет повторения кода это я понял только пока ничего лучше не придумал.
PEHDOM
Ну что сами напросились. НАс ведь, хлебом не корми, дай когонить покритиковать.
1. Дистрибутив
Игра требует pyGame. Ни тебе requirements.txt, ни хоть просто надписи: “для запуска нужно…”
2. Геймплей:
- когда пицца попадает в “тарелку” она исчезает, но если сразу отодвинуть “тарелку”, видно как пицца падает дальше.
- Что вообще происходит? Где надпись “игра окончена вы….”, я даже не понимаю выиграл я или проиграл. Я уже не говорю о правилах.
- после проигрыша(выиграша??) кнопка “Play” не начинает игру заново.
3. Графика:
- нет, я все понимаю, делалось на коленке, и графика тут для галочки, но можно же было более аккуратно вырезать картинку, чтобы не было этих ужасных белых окантовок вокруг спрайтов.
- забор обрезан “криво” в ФШ провели линию по ней в тупую и обрезали, такое обрезание очень уж глаза режет. Что стоило обрезать по линии шва между кирпичами и чуть чуть повернуть или деформировать в фотошопе?
- “веселый повар” отображаеться поверх кирпичной стены, хотя должен быть за ней. Слои?
- “веселый повар”просто телепортируеться, пускай уж он или перемещаеться хоть както, или прячеться за стеной а потом выскакивает в новом месте.
- поведение кнокпок… ну ладно фиг с ним, пока пропустим.
4. Код.
- ИМХО. слишком много файлов, для такого обьема, было бы достаточно двух-трех. Один описывающий поведение спрайтов, один ГУИ(вякие кнопочки-цифирьки) и один собирающий это все вместе(основной код игры)
- button.py это вообще . куча неинформативных переменных, с кучей же копипастных методов с такимиже названиями: self.rect_1, self.rect_2…self.rect6, prep_msg_1, prep_msg_2,….prep_msg_6, draw_button_1,….draw_button_6. там же код идентичный, отличеться только цифирька в конце.
Можно же было это через словарь или список сделать, в конце концов, класс ведь тоже хранит свои атрибуты в словаре.
- что вообще делает class Button()? Это класс который рисует вообще все кнопки? ПРи этом положенние кнопок задано заранее? ИМХО это неправильно в корне, должен быть класс который рисует одну кнопку, а все кнопки, это просто разные инстансы этого класса.

Andrey_Golovin
PEHDOM
но можно же было более аккуратно вырезать картинку, чтобы не было этих ужасных белых окантовок вокруг спрайтов
но можно же было более аккуратно вырезать картинку, чтобы не было этих ужасных белых окантовок вокруг спрайтов
Картинка не вырезана белый цвет скрывается
 self.image.set_colorkey(white)
вот так.
Andrey_Golovin
Andrey_Golovin
PEHDOM
Ну что сами напросились. НАс ведь, хлебом не корми, дай когонить покритиковать.1. Дистрибутив Игра требует pyGame. Ни тебе requirements.txt, ни хоть просто надписи: “для запуска нужно…”2. Геймплей:- когда пицца попадает в “тарелку” она исчезает, но если сразу отодвинуть “тарелку”, видно как пицца падает дальше.- Что вообще происходит? Где надпись “игра окончена вы….”, я даже не понимаю выиграл я или проиграл. Я уже не говорю о правилах.- после проигрыша(выиграша??) кнопка “Play” не начинает игру заново.3. Графика:- нет, я все понимаю, делалось на коленке, и графика тут для галочки, но можно же было более аккуратно вырезать картинку, чтобы не было этих ужасных белых окантовок вокруг спрайтов.- забор обрезан “криво” в ФШ провели линию по ней в тупую и обрезали, такое обрезание очень уж глаза режет. Что стоило обрезать по линии шва между кирпичами и чуть чуть повернуть или деформировать в фотошопе? - “веселый повар” отображаеться поверх кирпичной стены, хотя должен быть за ней. Слои?- “веселый повар”просто телепортируеться, пускай уж он или перемещаеться хоть както, или прячеться за стеной а потом выскакивает в новом месте.- поведение кнокпок… ну ладно фиг с ним, пока пропустим.4. Код.- ИМХО. слишком много файлов, для такого обьема, было бы достаточно двух-трех. Один описывающий поведение спрайтов, один ГУИ(вякие кнопочки-цифирьки) и один собирающий это все вместе(основной код игры)- button.py это вообще . куча неинформативных переменных, с кучей же копипастных методов с такимиже названиями: self.rect_1, self.rect_2…self.rect6, prep_msg_1, prep_msg_2,….prep_msg_6, draw_button_1,….draw_button_6. там же код идентичный, отличеться только цифирька в конце.Можно же было это через словарь или список сделать, в конце концов, класс ведь тоже хранит свои атрибуты в словаре.- что вообще делает class Button()? Это класс который рисует вообще все кнопки? ПРи этом положенние кнопок задано заранее? ИМХО это неправильно в корне, должен быть класс который рисует одну кнопку, а все кнопки, это просто разные инстансы этого класса.
Спасибо! Буду исправлять.)))
PEHDOM
Andrey_Golovin
Картинка не вырезана белый цвет скрывается
ну не знаю, у меня оно выглядит вот так

окантовка видна, и очень режет по глалазам.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB