0
我有一个从.txt文件读取迷宫并将其转换为字典的函数。词典的键是迷宫的单元格,值是主要点。 “真”值意味着北面有一面墙,等等。 这是我的功能作用:如何在Python中打印保存为字典的迷宫?
def importa(maze):
lab=open(maze, 'r')
l=list(lab.readlines())
if len(l)==0:
return None
righe=len(l)
colonne=(len(l[0])-1)
maze=dict()
for r in range(1,righe-1,2):
for c in range(1,colonne-1,2):
nord=l[r-1][c]=='*'
sud=(l[r+1][c]=='*')
est=(l[r][c+1]=='*')
ovest=(l[r][c-1]=='*')
maze[(r//2,c//2)]=[{'N':nord,'S':sud,'E':est,'O':ovest},'']
#la stringa vuota è lo stato della cella
return maze
例如一个迷宫:
{(0, 0): [{'N': True, 'S': False, 'E': True, 'O': True}, ''], (0, 1): [{'N': True, 'S': False, 'E': True, 'O': True}, ''], (0, 2): [{'N': True, 'S': True, 'E': False, 'O': True}, ''], (0, 3): [{'N': True, 'S': False, 'E': False, 'O': False}, ''], (0, 4): [{'N': True, 'S': True, 'E': True, 'O': False}, ''], (1, 0): [{'N': False, 'S': True, 'E': False, 'O': True}, ''], (1, 1): [{'N': False, 'S': False, 'E': False, 'O': False}, ''], (1, 2): [{'N': True, 'S': False, 'E': False, 'O': False}, ''], (1, 3): [{'N': False, 'S': True, 'E': True, 'O': False}, ''], (1, 4): [{'N': True, 'S': False, 'E': False, 'O': True}, ''], (2, 0): [{'N': True, 'S': True, 'E': False, 'O': True}, ''], (2, 1): [{'N': False, 'S': False, 'E': True, 'O': False}, ''], (2, 2): [{'N': False, 'S': False, 'E': False, 'O': True}, ''], (2, 3): [{'N': True, 'S': True, 'E': False, 'O': False}, ''], (2, 4): [{'N': False, 'S': False, 'E': True, 'O': False}, ''], (3, 0): [{'N': True, 'S': False, 'E': True, 'O': True}, ''], (3, 1): [{'N': False, 'S': True, 'E': True, 'O': True}, ''], (3, 2): [{'N': False, 'S': True, 'E': False, 'O': True}, ''], (3, 3): [{'N': True, 'S': False, 'E': True, 'O': False}, ''], (3, 4): [{'N': False, 'S': False, 'E': True, 'O': True}, ''], (4, 0): [{'N': False, 'S': True, 'E': False, 'O': True}, ''], (4, 1): [{'N': True, 'S': True, 'E': False, 'O': False}, ''], (4, 2): [{'N': True, 'S': True, 'E': False, 'O': False}, ''], (4, 3): [{'N': False, 'S': True, 'E': True, 'O': False}, ''], (4, 4): [{'N': False, 'S': True, 'E': True, 'O': True}, '']}
我需要编写打印我的迷宫这样的功能: enter image description here
谁能帮我?
我试图建立一个功能,但它似乎很长......
def stampa(L):
labirinto=[]
for r in range(righe_colonne(L)[0]):
riga=[]
for cella in celle(L):
if cella[0]==r:
if L[cella][0]['O']==True:
riga.append('| ')
if L[cella][0]['O']==False:
riga.append(' ')
if cella[1]==righe_colonne(L)[1]-1:
if L[cella][0]['E']==True:
riga.append('|')
if L[cella][0]['E']==False:
riga.append(' ')
labirinto.append(''.join(str(x) for x in riga))
#cosi ho le righe pari, quelle che contengono le celle.
#ora voglio le righe fra le celle
labirinto2=[]
for r in range(righe_colonne(L)[0]):
riga=['+']
for cella in celle(L):
if cella[0]==r:
if L[cella][0]['N']==True:
riga.append('---+')
if L[cella][0]['N']==False:
riga.append(' +')
labirinto2.append(''.join(str(x) for x in riga))
m=''
for e in range(0, len(labirinto)):
m+=labirinto2[e]+'\n'+labirinto[e]+'\n'
#aggiungo l'ultima riga
riga=[]
for cella in celle(L):
if cella[0]==righe_colonne(L)[0]-1:
if L[cella][0]['S']==True:
riga.append('+---')
if L[cella][0]['S']==False:
riga.append(' ')
riga.append('+')
m+=(''.join(str(x) for x in riga))
m+='\n'
print(m)
到目前为止你有什么? –
你想打印什么类型的媒体?在浏览器中作为HTML/CSS?在控制台作为纯文本? –
另外:如果两个相邻的单元格有边界,如何处理情况?例如。 '{(0,0):[{“E”:True}],(0,1):[{“W”:True}]}。在这种情况下边界应该是双倍的吗? –