【发布时间】:2016-05-04 18:05:50
【问题描述】:
所以我正在制作一个非常类似于使用 10x10 棋盘的跳棋的游戏。每个玩家有 15 个棋子,一个玩家从左上角开始,另一个玩家从右下角开始。到目前为止,我对移动的想法是玩家将输入他想要移动的棋子的 x 和 y 坐标。但是,我想在玩家每次移动时“翻转”游戏板,这样玩家就不必在棋盘的不同面工作。除了电路板本身和电路板的印刷品之外,我没有太多代码。如果它有任何帮助,这是我到目前为止的代码,没什么太花哨的。
matrix = [[1,1,1,1,1,0,0,0,0,0], [1,1,1,1,0,0,0,0,0,0], [1,1,1,0,0,0,0,0,0,0], [1,1,0,0,0,0,0,0,0,0], [1,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,2], [0,0,0,0,0,0,0,0,2,2], [0,0,0,0,0,0,0,2,2,2], [0,0,0,0,0,0,2,2,2,2], [0,0,0,0,0,2,2,2,2,2]]
print "\n".join(" ".join(str(el) for el in row) for row in matrix)
print matrix[0][0]
这是结果:
1 1 1 1 1 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0
1 1 1 0 0 0 0 0 0 0
1 1 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 2
0 0 0 0 0 0 0 0 2 2
0 0 0 0 0 0 0 2 2 2
0 0 0 0 0 0 2 2 2 2
0 0 0 0 0 2 2 2 2 2
所以从理论上讲,如果我想将检查器移到最低行,我会输入 x = 0 和 y = 4,其中包含一个“1”检查器。但是,如果第二个玩家想要移动相同的棋子,他们必须输入 x = 9 和 y = 5。
有什么方法可以翻转坐标,使两个人也输入 x = 0 和 y = 4 来移动最后一个棋子。我更喜欢这个系统,因为我觉得它不那么令人困惑。
【问题讨论】:
-
想想切片。您可以使用 mylist[::-1] 反转列表。现在想想你的 X 轴是什么,你的 Y 轴是什么。现在你能解决这个问题了吗?
-
使用负索引?
matrix[-x-1][-y-1]应该给你matrix[x][y]在板中心的反射。如果您不介意硬编码列表的大小,我想您可以使用9-x和9-y来获得正索引。
标签: python multidimensional-array