fork download
  1. # Time Complexity : O(n*n)
  2. '''
  3. x x x
  4. o x x
  5. o o x
  6.  
  7.  
  8. 0 1 2
  9. 1
  10. 2
  11.  
  12. 0,0 --> 0,0 1,1, 2,2
  13. 0,2 --> 0,2 1,1 2,0
  14.  
  15. Centre === n/ 2 (1,1)
  16. 1,1 --> 0,0 1,1, 2,2
  17. 0,2 1,1 2,0
  18.  
  19. 2,2 --> 2,2 1,1 0,0
  20. 2,0 --> 2,0 1,1 0,2
  21. '''
  22.  
  23.  
  24. def capturedRow(board, n, player):
  25. # in this row has he captured the entire column
  26.  
  27. for i in range(n):
  28. captured = True
  29. for j in range(n):
  30. if board[i][j] != player:
  31. captured = False
  32. break
  33. return captured
  34.  
  35.  
  36. def capturedColumn(board, n, player):
  37. # in this column has he captured the entire row.
  38. for i in range(n):
  39. captured = True
  40. for j in range(n):
  41. if board[j][i] != player:
  42. captured = False
  43. break
  44. return captured
  45.  
  46.  
  47. def capturedDiagonal(board, n, player):
  48. # in this diagonal has he captured the entire diagonal.
  49. if board[0][0] == player:
  50. i = 1
  51. j = 1
  52. while i < n and j < n:
  53. if board[i][j] != player:
  54. return False
  55. i = i + 1
  56. j = j + 1
  57. return True
  58.  
  59. elif board[0][n - 1] == player:
  60. i = 1
  61. j = n - 2
  62. while i < n and j > 0:
  63. if board[i][j] != player:
  64. return False
  65. i = i + 1
  66. j = j - 1
  67. return True
  68.  
  69.  
  70. def hasWon(player, board, n):
  71.  
  72. if capturedRow(board, n, player) or capturedColumn(board, n, player) or capturedDiagonal(board, n,player):
  73. return True
  74.  
  75. return False
  76.  
  77.  
  78. def print_board(Ar):
  79. for i in range(len(Ar)):
  80. for j in range(len(Ar)):
  81. print(Ar[i][j], end=' ')
  82. print()
  83. print()
  84.  
  85.  
  86. # board = [[0 for y in range(3)]for x in range(3)]
  87.  
  88. board = [[0, 0, 1],
  89. [1, 1, 0],
  90. [1, 1, 0]]
  91. print_board(board)
  92. player = 1
  93. print("" + str(player) + " hasWon ? " + str(hasWon(player, board, 3)))
  94.  
Success #stdin #stdout 0.02s 9984KB
stdin
Standard input is empty
stdout
0 0 1 
1 1 0 
1 1 0 

1 hasWon ? True