Hướng dẫn tic tac toe diagonal check python - tic tac toe kiểm tra đường chéo python

Tất cả các séc với toàn bộ danh sách

game_board = [ [1, 0, 1],
               [0, 1, 0],
               [0, 1, 0] ]

# Horizontals
h = [str(i+1) + ' Row' for i, v in enumerate(game_board) if sum(v) == 3]

# Verticals
v = [str(i+1) + ' Col' for i in range(3) if sum([j[i] for j in game_board]) == 3]

# Diagonals
d = [['Left Diag', '','Right Diag'][i+1] for i in [-1, 1] if sum([game_board[0][1+i], game_board[1][1]], game_board[2][1-i]) == 3]

if any([h,v,d]):
    print('You won on:', h, v, d)
else:
    print('No win yet')

[2, 1, 1],

################# sau ################# sau ################# sau #
# Vấn đề thực hành Python
#
# Bài 26: Kiểm tra Tic Tac Toe
#
# Bài 26: Kiểm tra Tic Tac Toe
'' '
Hôm nay, chúng tôi chỉ đơn giản là tập trung vào việc kiểm tra xem ai đó đã thắng một trò chơi Tic Tac Toe, không phải lo lắng về cách các động tác được thực hiện.
Nếu một trò chơi Tic Tac Toe được thể hiện dưới dạng danh sách các danh sách, như vậy:
game = [[1, 2, 0],
[2, 1, 0],
[2, 1, 1]]]
Trong đó 0 có nghĩa là một hình vuông trống, 1 có nghĩa là người chơi 1 đặt mã thông báo của họ vào không gian đó và 2 có nghĩa là người chơi 2 đặt mã thông báo của họ vào không gian đó.
Nhiệm vụ của bạn trong tuần này: Đưa ra một danh sách 3 by 3 danh sách đại diện cho bảng trò chơi Tic Tac Toe, hãy cho tôi biết liệu có ai đã thắng hay không, và cho tôi biết người chơi nào đã thắng, nếu có.
Chiến thắng TAC TAC TOE là 3 liên tiếp - liên tiếp, một cột hoặc một đường chéo. Don Tiết lo lắng về trường hợp hai người đã thắng - giả sử rằng trong mỗi bảng sẽ chỉ có một người chiến thắng.
################# sau ################# sau ################# sau #
'' '
# có thể tạo danh sách thành một tập hợp và kiểm tra xem liệu (LEN (SET (MYLIST)) == 1 và MYLIST [i] [0]! = 1): Trả về người chiến thắng checkBoard(gameBoard):
columns=3 = 3
DefCheckboard (GameBoard):
#Kiểm tra các chiến thắng ngang row in gameBoard:
Forrowingameboard: (row[0] == row[1] == row[2] and row[0] != 0):
if (hàng [0] == hàng [1] == hàng [2] Androw [0]! = 0): 'Winner, winner, chicken Dinner! Player ' + row[0] + 'wins horizontal-style!'
Print'winner, người chiến thắng, bữa tối gà! Người chơi ' +hàng [0] +' thắng kiểu ngang! ' True
trở lại
#kiểm tra các chiến thắng dọc i in xrange(columns):
index=i-1 = i - 1
foriinxrange (cột): (gameBoard[0][index] == gameBoard[1][index] == gameBoard[2][index] and gameBoard[0][index] != 0):
if (GameBoard [0] [index] == gameBoard [1] [index] == gameBoard [2] [index] andgameBoard [0] [index]! = 0): 'Winner, winner, chicken Dinner! Player ' + str(gameBoard[0][index]) + ' wins vertical-style~!!'
Print'winner, người chiến thắng, bữa tối gà! Người chơi ' +hàng [0] +' thắng kiểu ngang! ' True
trở lại
#kiểm tra các chiến thắng dọc (gameBoard[0][0] == gameBoard[1][1] == gameBoard[2][2] and gameBoard[0][0] != 0):
foriinxrange (cột): 'Winner, winner, chicken Dinner! Player ' + str(gameBoard[0][0]) + ' wins Diagonal-style~RD!!'
Print'winner, người chiến thắng, bữa tối gà! Người chơi ' +hàng [0] +' thắng kiểu ngang! ' True
trở lại (gameBoard[0][2] == gameBoard[1][1] == gameBoard[2][0] and gameBoard[0][2] != 0):
#kiểm tra các chiến thắng dọc 'Winner, winner, chicken Dinner! Player ' + str(gameBoard[0][0]) + ' wins Diagonal-style~LD!!'
Print'winner, người chiến thắng, bữa tối gà! Người chơi ' +hàng [0] +' thắng kiểu ngang! ' True
trở lại 'No one won. Keep playing!'
#kiểm tra các chiến thắng dọc False
foriinxrange (cột): main():
playerWon=False = False
if (GameBoard [0] [index] == gameBoard [1] [index] == gameBoard [2] [index] andgameBoard [0] [index]! = 0): = [[2, 2, 1],
Print'winner, người chiến thắng, bữa tối gà! Người chơi ' +str (gameboard [0] [index]) +' thắng kiểu dọc ~ !! '2, 1, 1],
#Check cho các đường chéo0, 1, 1]]
if (GameBoard [0] [0] == GameBoard [1] [1] == GameBoard [2] [2] AndgameBoard [0] [0]! = 0): = checkBoard(myTestBoard)
Print'winner, người chiến thắng, bữa tối gà! Người chơi ' +str (gameboard [0] [0]) +' thắng kiểu đường chéo ~ rd !! ' = [[2, 2, 0],
Elif (GameBoard [0] [2] == GameBoard [1] [1] == GameBoard [2] [0] AndgameBoard [0] [2]! = 0):2, 1, 0],
Print'winner, người chiến thắng, bữa tối gà! Người chơi ' +str (gameboard [0] [0]) +' thắng kiểu đường chéo ~ ld !! '2, 1, 1]]
Print'no một won. Tiếp tục chơi!' = checkBoard(winner_is_2)
returnFalse = [[1, 2, 0],
Elif (GameBoard [0] [2] == GameBoard [1] [1] == GameBoard [2] [0] AndgameBoard [0] [2]! = 0):2, 1, 0],
Print'winner, người chiến thắng, bữa tối gà! Người chơi ' +str (gameboard [0] [0]) +' thắng kiểu đường chéo ~ ld !! '2, 1, 1]]
Print'no một won. Tiếp tục chơi!' = checkBoard(winner_is_1)
returnFalse = [[0, 1, 0],
Elif (GameBoard [0] [2] == GameBoard [1] [1] == GameBoard [2] [0] AndgameBoard [0] [2]! = 0):2, 1, 0],
Print'winner, người chiến thắng, bữa tối gà! Người chơi ' +str (gameboard [0] [0]) +' thắng kiểu đường chéo ~ ld !! '2, 1, 1]]
Print'no một won. Tiếp tục chơi!' = checkBoard(winner_is_also_1)
returnFalse = [[1, 2, 0],
Elif (GameBoard [0] [2] == GameBoard [1] [1] == GameBoard [2] [0] AndgameBoard [0] [2]! = 0):2, 1, 0],
Print'winner, người chiến thắng, bữa tối gà! Người chơi ' +str (gameboard [0] [0]) +' thắng kiểu đường chéo ~ ld !! '2, 1, 2]]
Print'no một won. Tiếp tục chơi!' = checkBoard(no_winner)
returnFalse = [[1, 2, 0],
Elif (GameBoard [0] [2] == GameBoard [1] [1] == GameBoard [2] [0] AndgameBoard [0] [2]! = 0):2, 1, 0],
Print'winner, người chiến thắng, bữa tối gà! Người chơi ' +str (gameboard [0] [0]) +' thắng kiểu đường chéo ~ ld !! '2, 1, 0]]
Print'no một won. Tiếp tục chơi!' = checkBoard(also_no_winner)
returnFalse __name__ == '__main__':
DEFMAIN ():()