Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/75: Рейтинг темы: голосов - 75, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 06.12.2019
Сообщений: 17

Мини-майнкрафт

02.04.2020, 18:20. Показов 15165. Ответов 6

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

Имеется следующее условие задачи:

В игре Minecraft все игровые объекты делятся на три типа: блоки, сущности и предметы.
Блоки – это «кирпичики», из которых состоит весь игровой мир.
Сущности – это все динамические и движущиеся игровые объекты.
Предметы – это все остальные объекты.
Реализуйте иерархию классов для игры Minecraft:

BaseObject – базовый класс для всех объектов. Интерфейс этого класса состоит из двух методов:
__init__(x, y, z) – конструктор класса, который принимает на вход 3 числа (координаты объекта в игровом мире)
get_coordinates() – метод, возвращающий список координат x, y, z (именно в таком порядке)
Block – класс, наследующийся от BaseObject. У этого класса есть дополнительный метод shatter(), который ничего не принимает на вход и ничего не возвращает. При вызове этого метода все три координаты объекта Block должны стать равны None.
Entity – класс, наследующийся от BaseObject. У этого класса есть дополнительный метод move(x, y, z), который принимает на вход 3 числа (новые координаты объекта) и ничего не возвращает. При вызове этого метода координаты объекта должны стать равны x, y, z соответственно.
Thing – класс, наследующийся от BaseObject. У этого класса нет дополнительных методов.

По условию задачи мною была написана следующая программа:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class BaseObject:
    def __init__(self, x, y, z):
        self.x = x
        self.y = y
        self.z = z
        
    def get_coordinates(self):
        return list(self)
    
    
class Block(BaseObject):
    def shatter(self):
        self.x = None
        self.y = None
        self.z = None
    
            
class Entity(BaseObject):
    def move(self, x, y, z):
        self.x = x
        self.y = y
        self.z = z
            
            
class Thing(BaseObject):
    pass
Однако после проверки кода я вижу следующую ошибку:

Traceback (most recent call last):
File "tester.py", line 11, in <module>
coords = base_obj.get_coordinates()
File "/temp/executing/solution.py", line 8, in get_coordinates
return list(self)
TypeError: 'BaseObject' object is not iterable
make: *** [run] Error 1

Подскажите пожалуйста, как мне исправить эту ошибку?

Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.04.2020, 18:20
Ответы с готовыми решениями:

Мини-судоку
Решите рекурсивно мини-судоку размером 4x4. Для этого напишите функцию solve_sudoku(matrix), где matrix - целочисленная матрица (список...

Посоветуйте библиотеку для работы с майнкрафт ботом
Хотел бы узнать какую библиотеку я могу использовать для создания бота который будет заходить на мой сервер и работать с чатом. Сколько не...

Должен ли обязательно быть "человечек" в майнкрафт в режиме креатив (творчество)
Решила изучать питон с майнкрафт. И там и там - новичок. Изучаю по книжке, все делаю по инструкции. Там написано , что режим творчества по...

6
 Аватар для codcw
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
02.04.2020, 18:46
тут
Цитата Сообщение от iwannabesmarter Посмотреть сообщение
list(self)
вы пытаетесь вернуть список от объекта класса(self), вот он и говорит, что baseobject это не последовательность
0
0 / 0 / 0
Регистрация: 06.12.2019
Сообщений: 17
02.04.2020, 18:52  [ТС]
Место ошибки было понятно из самого сообщения. Мне хотелось бы получить помощь с устранением ошибки
0
0 / 0 / 0
Регистрация: 09.10.2019
Сообщений: 3
02.04.2020, 22:33
Вместо "return list(self)" я написал "return self", одна ошибка прошла но осталась еще одна как ее исправить хз.
0
 Аватар для codcw
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
03.04.2020, 01:41
Лучший ответ Сообщение было отмечено Рыжий Лис как решение

Решение

Python
1
2
def get_coordinates(self):
        return [self.x,self.y,self.z]
думаю так
3
0 / 0 / 0
Регистрация: 09.10.2019
Сообщений: 3
03.04.2020, 11:57
Как исправить класс Block?
0
38 / 36 / 2
Регистрация: 24.03.2020
Сообщений: 39
19.04.2020, 09:22
Вот готовый код, который проходит все проверки:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class BaseObject:
    def __init__(self, x, y, z):
        self.x = x
        self.y = y
        self.z = z
 
    def get_coordinates(self):
        return [self.x, self.y, self.z]
 
 
class Block(BaseObject):
    def shatter(self):
        self.x = None
        self.y = None
        self.z = None
 
 
class Entity(BaseObject):
    def move(self, x, y, z):
        self.x = x
        self.y = y
        self.z = z
 
 
class Thing(BaseObject):
    pass
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.04.2020, 09:22
Помогаю со студенческими работами здесь

Мини-судоку
Решите рекурсивно мини-судоку размером 4x4. Для этого напишите функцию solve_sudoku(matrix), где matrix - целочисленная матрица (список...

Мини-компьютер
Вася решил собрать себе мини-компьютер на базе платы Arduino или Raspberry Pi, который будет выводить небольшое рекламное сообщение на...

Мини автономная БД
Создать мини автономную БД Абитуриент с использованием графического интерфейса tkinter. Главное окно содержит кнопки: добавить...

Организация мини склада
Крутил, мутил вроди получилось, могу добавлять и удалять количество товара, а как сделать чтобы можно было добавлять/удалять новый товар и...

Мини-граф дизайнер
Здравствуйте, форумчане. Пишу первый раз, все тонкости не знаю. Возник вопрос по библиотеке PyQt5. Пишу программу с графическим...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru