请帮助我编写程序updateLocn(x,y,state)
,以便将映射中(x,y)处的字符更改为所选状态。我试着自己写,但没用。
代码如下:
T=树
G=偷走你物品的妖精
g=装有黄金的盒子
~=河流
w=墙
-=楼层
b=空盒子
==锁上的门
k=锁上车门的钥匙
*=出口门
worldMap = [
"TTTT TTTT g wwwwwwwwwwwwwwww",
"T gT w----=---b--=bgw",
"TTTTGTTT =----w------w-gw",
"TTTTTTTTTTT kwwwwwwwwwwwww*ww",
"~~~~~~~~~~~~~~~~~~~~~~~~~T TT",
"~~~~~~~~~~~~~~~~~~~~~~~~~T TT",
" ~~~~~ ",
" ~~~~~ "]
def printMap():
global worldMap
for line in worldMap:
print(line)
def getLocn(x,y):
global worldMap
locn = worldMap[y][x]
return locn
if x < 0 or y < 0:
return None
def describeLocn(x,y):
global worldMap
locn = getLocn(x,y)
if locn == "T":<br/>
return ("Dense forest")
elif locn == "t":
return ("Light woods")
elif locn == "w":
return ("Wall")
else :
return ("Meadows")
if x < 0 or y < 0:
return None
def updateMap(x,y,newState):
global worldMap
locn = getLocn(x,y)
locn = newState
newState = list(worldMap)
worldMap = ''.join(newState)
最后一个程序是我的试用代码。我应该在这里使用x,y,newState变量
首先要解决一些问题:当您两次分配一个变量时,第一个变量也可能不被分配。 我的建议是将位置的更新从地方的旗帜(你想要的东西的含义)分离到它在世界上的位置
例如,如果要在x,y插入新的状态newstate:
这应该取决于如何处理负索引。 请记住,当您访问列表的元素时,更改它不会改变列表。您必须在正确的索引处更改列表
此外,检查参数应该放在第一位,而不是最后一位。在getlocn中,对x,y的检查永远不会发生,因为您首先返回在那里找到的内容
如果你这样做
那么这不会更改
worldMap
的元素。此语句将worldMap
的元素获取并转换为局部变量locn
,然后更改变量locn
必须为
worldmap
的元素赋值:相关问题 更多 >
编程相关推荐