![](/img/trans.png)
[英]Given a list of tuples, check to see if it's possible to construct a word in which the second value in the tuple is not consecutively repeated
[英]Check my tuple of tuples and change the given value
所以,我正在做井字游戏,有 3 个元组。 (3x3 矩阵)
我的功能是: def do_position(board, player, position): 我想用新值返回我的新板,像这样:
板 = ((1,-1,0),(1,0,-1),(1,-1,0))
do_position(board, -1, 5)
((1, -1, 0), (1, -1, -1), (1, -1, 0))
board 是我的元组,player 将是一个值(-1(对于 0 个玩家)或 1(对于 X 个玩家)),而 position 是我想要放置 int(-1 或 1)的元组位置。
我知道我必须把我的元组变成列表,这样我才能到达我想要的位置,但我已经尝试了很多方法,我的输出仍然返回我的初始板,没有任何改变。 这是我的尝试之一:
def do_position(board,player, position):
newboard = ()
position=[1,2,3,4,5,6,7,8,9]
player = (-1,1)
for p in position:
board[position[p]-1] = player[p]
for position,player in enumerate(board):
if player == 1:
board[position] = 1
elif player == -1:
board[position] = -1
return newboard
任何人都可以提供一些帮助吗?
元组是不可变的,这意味着你不能改变元组的值。
所以到目前为止你有 3 个选择——
board = [[1,-1,0],[1,0,-1],[1,-1,0]]
备用工作代码:
def do_position(board,player, position):
position-=1
row,col=position//3,position%3
board[row][col]=player
return board
board = [[1,-1,0],[1,0,-1],[1,-1,0]]
do_position(board, -1, 3)
对于元组板:
def tuple_to_list(board):
return [list(x) for x in board]
def list_to_tuple(board):
return tuple([tuple(x) for x in board])
def do_position(board,player, position):
temp_board=tuple_to_list(board)
position-=1
row,col=position//3,position%3
temp_board[row][col]=player
return list_to_tuple(temp_board)
board = ((1,-1,0),(1,0,-1),(1,-1,0))
do_position(board, -1, 3)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.