0
通常、このエラーは括弧に問題があることを示します(例:かっこ、欠落、間違った箇所など)。ここの問題。Pythonの 'builtin_function_or_method'オブジェクトにリストの属性 '__getitem__'がありません
#iterate through all the tiles on the map and set as a background color
for y in range(MAP_WIDTH):
for x in range(MAP_HEIGHT):
#checks if the tile is a wall
wall = map[x][y].block_sight
if wall:
rlib.console_set_char_background(
con, x, y, color_dark_wall, rlib.BKGND_SET)
else:
rlib.console_set_char_background(
con, x, y, color_dark_ground, rlib.BKGND_SET)
ウォール=マップ行でエラーが発生します。マップは、Python内の配列の機能をシミュレートするリストのリストです。 block_sightがtrueまたはfalseのいずれかであり、ここでの設定です:
class Tile:
#Tiles are components of the map
def __init__(self, blocked, block_sight = None):
#takes the information and stores it on the tile
self.blocked = blocked
#if not specified, block_sight if the same as blocked
if block_sight is None: block_sight = blocked
self.block_sight = block_sight
これで任意の助けいただければ幸いです。
編集:ここではマップが構築される方法です。
#generates a list of lists with empty tiles as elements
def makemap():
map = [[Tile(False) #Must call a conctructor, not a variable such as floor
for y in range(MAP_HEIGHT)] #uses comprehension to generate lists
for x in range(MAP_WIDTH)]
#place two pillars to test the map
map[30][22].blocked = True
map[30][22].block_sight = True
map[50][22].blocked = True
map[50][22].block_sight = True
エラーから、リストのリストのように聞こえるのは実際にあなたが期待しているものではありません。おそらく、外側のリストには内側のリストではなく、組み込み関数が含まれています。 'map'の作成方法を教えてください。 – Blckknght
あなたはその行を呼び出す直前に 'map [x] [y]'を出力して、あなたが得たものを見ることができますか? –
あるいは、 'map'は、他の名前のリストではなく、関数型プログラミングで使う組み込み関数ですか? – Blckknght