0
出力に影響を与えずに、自分のプログラムのaddCoordinate関数のネストされたforループにネストされたリストの理解を適用する方法を教えてください。私はアウトプットで達成されるような形式で迷路を印刷するようにしましたが、私はプログラム全体をよりコンパクトにし、時間の複雑さを改善したいと考えています。私のプログラムのための関数内にネストされたリストの理解を適用する
from itertools import product
class Maze:
mazeboard, x1, y1, list = [], 0, 0, []
def __init__(self):
"""
Constructor - You may modify this, but please do not add any extra parameters
"""
def addCoordinate(self, x, y, blockType):
#print self.x1
if self.x1 < x :
self.x1 = x
if self.y1 < y:
self.y1 = y
if len(self.mazeboard) <= self.x1 or len(self.mazeboard) <= self.y1:
modified_board = [[1 for a in range(self.x1 + 1)] for b in range(self.y1 + 1)]
for a in range(len(self.mazeboard)):
for b in range(len(self.mazeboard[a])):
modified_board[a][b] = self.mazeboard[a][b]
self.mazeboard = modified_board
self.mazeboard[y][x] = blockType
def printMaze(self):
for a in range(self.x1 + 1):
for b in range(self.y1 + 1):
if self.mazeboard[a][b] == 0:
print " ",
else:
print "*",
print ""
def mazeTest():
myMaze = Maze()
myMaze.addCoordinate(1, 0, 0)
myMaze.addCoordinate(1, 1, 0)
myMaze.addCoordinate(7, 1, 0)
myMaze.addCoordinate(1, 2, 0)
myMaze.addCoordinate(2, 2, 0)
myMaze.addCoordinate(3, 2, 0)
myMaze.addCoordinate(4, 2, 0)
myMaze.addCoordinate(6, 2, 0)
myMaze.addCoordinate(7, 2, 0)
myMaze.addCoordinate(4, 3, 0)
myMaze.addCoordinate(7, 3, 0)
myMaze.addCoordinate(4, 4, 0)
myMaze.addCoordinate(7, 4, 0)
myMaze.addCoordinate(3, 5, 0)
myMaze.addCoordinate(4, 5, 0)
myMaze.addCoordinate(7, 5, 0)
myMaze.addCoordinate(1, 6, 0)
myMaze.addCoordinate(2, 6, 0)
myMaze.addCoordinate(3, 6, 0)
myMaze.addCoordinate(4, 6, 0)
myMaze.addCoordinate(6, 6, 0)
myMaze.addCoordinate(7, 6, 0)
myMaze.addCoordinate(5, 7, 0)
myMaze.printMaze()
mazeTest()
出力は次のとおりです。
* * * * * * *
* * * * * *
* *
* * * * * *
* * * * * *
* * * * *
* *
* * * * * * *
、正確な質問を追加してください。 – Algiz