저는 코딩에 익숙하지 않으며 '파이썬의 어려운 길'학습서를 통해 자신을 파이썬으로 가르치고 있으며 현재 간단한 게임을 만들고 있습니다. 지금까지 모든 것이 제대로 작동하는 것 같습니다만, 제 수업 중 하나를 다른 수업과 함께 만드는 법을 알 수는 없습니다.IndexError : 목록 색인이 범위를 벗어남/OOP를 사용하여 목록 호출이 어려움
class engine(object):
def __init__(self,world,days,character):
self.world = world
self.days = days
self.character = character
def letsdoit(self):
self.world.worldbuilder()
이것은 실제로 게임을 실행하기위한 블록이며, 9 번째 줄은 관련이 없으므로 생략됩니다.
world.worldbuilder는 게임이 실제로 실행되는지도를 만드는 기능입니다.
class World(self, width, height):
def __init__(self, width, height):
self.width = width
self.height = height
def worldbuilder(self):
map = []
for x in xrange(self.width):
z = []
for y in xrange(self.height):
z.append(self.tiletype())
map.append(z)
return map
World.typeype은 무작위로 타일을 생성 한 다음 재설정합니다. 월드 오브제를 인스턴스화하고 worldbuilder를 실행할 때 (반환하는 대신지도를 인쇄하는 것을 제외하고는) 모든 것이 완벽하게 작동합니다. 그러나 엔진이 돌아가는 세계 이외의 다른 물체를 가진 추측의지도를 참조 할 때, 나는 오류를 얻는다. 가장 흔한은 다음과 같습니다
IndexError: list out of range
구체적 내가에 대한 응답으로 그것을 얻을 : 나는 일반적인 타일을 동일하게 player.tilestore을 설정 한 경우에도
class player(object):
def __init__(self, World):
self.x = randint(1,World.width)
self.y = randint(1,World.height)
self.tilestore = map([self.x][self.y])
, 내 'built_in_function_or_method 말한다 어디 TypeErrors로 실행 '항목에는 다른 장소의지도를 참조 할 때'get_item '속성이 없습니다.
나는 list = self.world.worldbuilder()를 설정하고지도 대신 list를 호출했지만 그 다음 똑같은 문제가 발생합니다.
지도의 속성을 플레이어의 속성으로 설정해야했지만,이 방법 외에는 매우 효과적이었습니다. 감사합니다. –