我希望在特定列表中找到一系列条目,然后找到它的位置,以便我可以在特定点之后在序列上添加一些额外条目。我需要找到这个,因为我正在使用基于网格的电路板进行基于回合制的游戏,我需要在任何必要的时间存储数据。
我的代码目前是:
CreateWorld.py:
global BaseHealth
BaseHealth = 10
global BaseHappiness
BaseHappiness = 10
global BaseIntelligence
BaseIntelligence = 10
global BaseProduction
BaseProduction = 10
global BaseWealth
BaseWealth = 10
global Tiles
Tiles = []
#The Process of Generating a Blank Map xAxis long and zAxis wide
def createLandscape(xAxis, zAxis):
#Sets the amount of createdRows to 0
createdRows = 0
#Calls createRow() the amount of times that the Map is Long
while createdRows < xAxis:
createRow(createdRows, zAxis)
createdRows += 1
#The Process of Generating a Blank Map Row zAxis Wide and with a Row Number of RowsCreated
def createRow(RowsCreated, zAxis):
#Sets the amount of createdTiles to 0
createdTiles = 0
createdRows = RowsCreated
#Calls createTile() the amount of times that the Row is wide
while createdTiles < zAxis:
createTile(createdRows, createdTiles)
createdTiles += 1
#The Process of Generating a Blank Map Tile in the
def createTile(RowsCreated, TilesCreated):
global Tiles
Tiles.append(RowsCreated)
Tiles.append(TilesCreated)
Tiles.append("end")
主档案:
import sys
sys.path.insert(1,'/BaseGame')
from Startup import Start
from Startup import MainMenu
from BaseGame import CreateWorld
global Tiles
#Start.start()
#MainMenu.listMenu_Main00()
CreateWorld.createLandscape(3, 3)
Tiles.insert()
print Tiles
我希望能够列出多个
条目[x位置,z位置,无论什么,无论结束,x位置,z位置,无论结束,x位置,z位置,无论什么,无论什么,不管结束等等)
然后在x位置之后添加任意内容,例如32位且z为50.所以它最终会
(... 32,50,无论如何,结束)
答案 0 :(得分:0)
使用dict
进行此类操作可能会有所帮助。例如,您可以使用全局Tiles
及其索引来访问特定磁贴。
Tiles = [{'x_loc':32, 'z_loc':50, 'stuff1':"stuff1", 'stuff2':"stuff2"},
{'x_loc':33, 'z_loc':51, 'stuff3':"stuff3", 'stuff4':"stuff4"},
{'x_loc':34, 'z_loc':52, 'stuff5':"stuff5", 'stuff6':"stuff6"}
]
例如:
>>> for id, item in enumerate(Tiles):print(Tiles[id]['x_loc'])
...
32
33
34
>>> for id, item in enumerate(Tiles):print(Tiles[id]['x_loc'], item)
...
(32, {'z_loc': 50, 'x_loc': 32, 'stuff1': 'stuff1', 'stuff2': 'stuff2'})
(33, {'z_loc': 51, 'stuff4': 'stuff4', 'x_loc': 33, 'stuff3': 'stuff3'})
(34, {'z_loc': 52, 'stuff5': 'stuff5', 'x_loc': 34, 'stuff6': 'stuff6'})
然后您可以更新项目,添加项目或从其他图块复制:
>>> Tiles[1]
{'z_loc': 51, 'stuff4': 'stuff4', 'x_loc': 33, 'stuff3': 'stuff3'}
>>> Tiles[1].update({'stuff4':'stuff4updated'})
>>> Tiles[1]
{'z_loc': 51, 'stuff4': 'stuff4updated', 'x_loc': 33, 'stuff3': 'stuff3'}
>>> Tiles[1].update({'stuff4':'stuff4updatedtwice', 'stuff3':'stuff3updated'})
>>> Tiles[1]
{'z_loc': 51, 'stuff4': 'stuff4updatedtwice', 'stuff3': 'stuff3updated', 'x_loc': 33}
>>> Tiles[1]
{'z_loc': 51, 'stuff4': 'stuff4updatedtwice', 'stuff3': 'stuff3updated', 'x_loc': 33}
>>> Tiles[1].update({'stuff2':Tiles[0]['stuff2']})
>>> Tiles[0]
{'z_loc': 50, 'x_loc': 32, 'stuff1': 'stuff1', 'stuff2': 'stuff2'}
>>> Tiles[1]
{'z_loc': 51, 'stuff4': 'stuff4updatedtwice', 'stuff2': 'stuff2', 'stuff3': 'stuff3updated', 'x_loc': 33}
查找条目序列取决于网格尺寸。
在我的例子中,我使用的是1x3。
因此,为了找到一个系列,我将创建一个3x3,然后使用索引范围。
>>> Tiles2 = [Tiles,Tiles,Tiles]
>>> Tiles2[0][0:2]
[{'z_loc': 50, 'x_loc': 32, 'stuff1': 'stuff1', 'stuff2': 'stuff2'}, {'z_loc': 51, 'stuff4': 'stuff4updatedtwice', 'stuff2': 'stuff2', 'stuff3': 'stuff3updated', 'x_loc': 33}]
>>> Tiles2[0:1][0:2]
[[{'z_loc': 50, 'x_loc': 32, 'stuff1': 'stuff1', 'stuff2': 'stuff2'}, {'z_loc': 51, 'stuff4': 'stuff4updatedtwice', 'stuff2': 'stuff2', 'stuff3': 'stuff3updated', 'x_loc': 33}, {'z_loc': 52, 'stuff5': 'stuff5', 'x_loc': 34, 'stuff6': 'stuff6'}]]
`