所以我制作的游戏非常类似于使用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.
有没有办法翻转坐标,其中人2也输入x = 0和y = 4来移动最后一个检查器。我更喜欢这个系统,因为我觉得它不那么令人困惑。
答案 0 :(得分:0)
如果我理解,您希望第二个用户看到以下矩阵
2 2 2 2 2 0 0 0 0 0
2 2 2 2 0 0 0 0 0 0
2 2 2 0 0 0 0 0 0 0
2 2 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 1 1 1
0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 1 1 1 1 1
如果这是正确的,我认为最简单的方法是使用numpy
import numpy as np
new_matrix = np.fliplr(np.flipud(matrix)) # flip left-right and flip up-down
new_matrix = new_matrix.tolist() # If you want to use a list
# instead a numpy array after the operation
答案 1 :(得分:0)
如果您不想每次都翻转数组,您可以转换第二个玩家输入
def transform_p2(x,y):
p2_x = 9-x
p2_y = 9-y
return p2_x, p2_y