我需要编写一个函数来读取文件并在一个单元格中列出游戏的每个级别。每个单元格都包含该级别的行作为字符串,并且每一行都是单元格的一个元素。最后的单元格应该没有出现在级别之前的数字或单词,并且没有“\n”或空单元格。我实现了这个功能,但对于看起来像这样的关卡,它并不能很好地工作。有人知道吗?
文件级别
; 1
####
# .#
# ###
#*@ #
# $ #
# ###
####
作为列表中的单元格:
['####', '# .#', '# ###', '#*@ #', '# $ #', '# ###', '####']
我遇到问题的级别示例:
; 154 'Take the long way home.'
############################
# #
# ######################## #
# # # #
# # #################### # #
# # # # # #
# # # ################ # # #
# # # # # # # #
# # # # ############ # # # #
# # # # # # # # #
# # # # # ############ # # #
# # # # # # # #
# # # # ################ # #
# # # # # #
##$# # #################### #
#. @ # #
#############################
看起来像这样:
["54 'Take the long way home.'", '', ' ############################', ' # #', ' # ######################## #', ' # # # #', ' # # #################### # #', ' # # # # # #', ' # # # ################ # # #', ' # # # # # # # #', ' # # # # ############ # # # #', ' # # # # # # # # #', ' # # # # # ############ # # #', ' # # # # # # # #', ' # # # # ################ # #', ' # # # # # #', '##$# # #################### #', '#. @ # #', '#############################']
我的代码:
def loader(filename):
tmp=[]
levels=[]
f=open(filename, "r")
f=f.read().split(';')
for line in f:
tmp.append(line[2:].strip())
tmp.remove("")
for i in tmp:
i=i.split("\n")
levels.append(i)
print levels