Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 25, 2019 14:37:59

Andrey_Golovin
Зарегистрирован: 2018-01-27
Сообщения: 35
Репутация: +  1  -
Профиль   Отправить e-mail  

Можно критику пожалуйста?

Добрый день, уважаемые!
Дайте пожалуйста критику моему произведению.
Хочу, так сказать, провести работу над ошибками.

Прикреплённый файлы:
attachment Panic in the pizzeria.zip (111,4 KБ)

Офлайн

#2 Фев. 25, 2019 15:30:11

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Можно критику пожалуйста?

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-й строках?



Офлайн

#3 Фев. 25, 2019 15:32:29

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Можно критику пожалуйста?

Класс Button - шестикратное дублирование кода.



Офлайн

#4 Фев. 25, 2019 16:00:25

Andrey_Golovin
Зарегистрирован: 2018-01-27
Сообщения: 35
Репутация: +  1  -
Профиль   Отправить e-mail  

Можно критику пожалуйста?

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.

Офлайн

#5 Фев. 25, 2019 16:01:26

Andrey_Golovin
Зарегистрирован: 2018-01-27
Сообщения: 35
Репутация: +  1  -
Профиль   Отправить e-mail  

Можно критику пожалуйста?

FishHook
Класс Button - шестикратное дублирование кода.
Ух как)) Даже покраснел))) Спасибо!

Офлайн

#6 Фев. 25, 2019 16:03:13

Andrey_Golovin
Зарегистрирован: 2018-01-27
Сообщения: 35
Репутация: +  1  -
Профиль   Отправить e-mail  

Можно критику пожалуйста?

Класс Button - шестикратное дублирование кода.
Вот насчет повторения кода это я понял только пока ничего лучше не придумал.

Офлайн

#7 Фев. 25, 2019 16:05:35

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Можно критику пожалуйста?

Ну что сами напросились. НАс ведь, хлебом не корми, дай когонить покритиковать.
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()? Это класс который рисует вообще все кнопки? ПРи этом положенние кнопок задано заранее? ИМХО это неправильно в корне, должен быть класс который рисует одну кнопку, а все кнопки, это просто разные инстансы этого класса.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Фев. 25, 2019 16:09:42)

Офлайн

#8 Фев. 25, 2019 16:13:43

Andrey_Golovin
Зарегистрирован: 2018-01-27
Сообщения: 35
Репутация: +  1  -
Профиль   Отправить e-mail  

Можно критику пожалуйста?

PEHDOM
но можно же было более аккуратно вырезать картинку, чтобы не было этих ужасных белых окантовок вокруг спрайтов
но можно же было более аккуратно вырезать картинку, чтобы не было этих ужасных белых окантовок вокруг спрайтов
Картинка не вырезана белый цвет скрывается
 self.image.set_colorkey(white)
вот так.

Офлайн

#9 Фев. 25, 2019 16:16:00

Andrey_Golovin
Зарегистрирован: 2018-01-27
Сообщения: 35
Репутация: +  1  -
Профиль   Отправить e-mail  

Можно критику пожалуйста?

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()? Это класс который рисует вообще все кнопки? ПРи этом положенние кнопок задано заранее? ИМХО это неправильно в корне, должен быть класс который рисует одну кнопку, а все кнопки, это просто разные инстансы этого класса.
Спасибо! Буду исправлять.)))

Офлайн

#10 Фев. 25, 2019 16:20:34

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Можно критику пожалуйста?

Andrey_Golovin
Картинка не вырезана белый цвет скрывается
ну не знаю, у меня оно выглядит вот так

окантовка видна, и очень режет по глалазам.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version