【发布时间】:2017-06-26 03:00:36
【问题描述】:
首先,我正在制作一个地图是列表列表的游戏:
P1.Cmap = [
['0,'0',0'],
['0,'0',0'],
['0,'0',0'],
]
我有一个打印它的功能:
def render(): #render the map to player
P1.Cmap[P1.y][P1.x] = P1.char
j = 40 - len(P1.Cmap)
p = int(j/2)
l = len(P1.Cmap[0])
print('\n' * p)
print('-' * l)
for r in P1.Cmap:
print(''.join(r))
print('\n' * p)
其中 P1 是玩家对象,char 是代表它的角色 (X)
我还做了一个函数来生成带有给定参数的地图:
def newMap():
Nmn = input('What is the name of the map? ')
NmSx = input('What is the size you want?(X) ')
NmSy = input('What is the size you want?(Y) ')
Row = []
Map = []
for r in range(int(NmSx)):
Row.append('0')
for c in range(int(NmSy)):
Map.append(Row)
P1.Cmap = Map
print(P1.Cmap)
但是当我将玩家 X 和 Y 设置为 P1.x = 1, P1.y = 0 并且我使用该函数生成地图时,它实际上会打印:
0X0
0X0
0X0
而不是“应该”(当我像上面的第一个代码块那样制作地图时):
0X0
000
000
我认为问题不在 render() 中,而是在 newMap() 中,但我似乎找不到它,有什么想法吗?
【问题讨论】:
-
您的列表不是 Python 语法。引号和逗号太少或太多。