所以我正在制作一个游戏,我有一个元组字典,其中包含运动场上对象的坐标,看起来像这样(例如):
location = {player : (1, 4), monster : (3, 2), escape : (4, 0)}
在我的代码后面,我想将坐标更改为更容易理解的区域。第一个定义部分是相应的字母,第二个是数字,如下所示:玩家在 B4,怪物在 C2,依此类推。右上角的“区域”由元组 (4, 4) 表示,左下角的“区域”由元组 (0, 0) 表示。我能想到的唯一可行的方法是这样的:
location = {player : (1, 4), monster : (3, 2), escape : (4, 0)}
letters = ["A", "B", "C", "D", "E"]
playerArea = "{}{}".format(letters[int(location[player[0]])+1], location[player[1]])
简而言之,它没有用。我认为问题在于从字典中解压元组并将其用作从列表字母中获取字母的数字。抱歉,这让您感到困惑,我会尽力回答您的所有问题。
问题的核心是如何将数字行/列坐标转换为更易读的东西(战舰式)。这是一个简单而快速的函数来做到这一点:
>>> def rc_to_abc(x, y):
return 'ABCDEFGHIJKLOMOPQRSTUVWXYZ'[x] + str(y)
>>> rc_to_abc(1, 4)
'B4'
>>> rc_to_abc(3, 2)
'D2'
>>> rc_to_abc(4, 0)
'E0'
我是一名优秀的程序员,十分优秀!