Advertisement
Guest User

Untitled

a guest
Oct 15th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.37 KB | None | 0 0
  1. def make_grid(dimentionInput):
  2.     gridCounter = 0
  3.     parentGrid=[]
  4.  
  5.     for i in range(0, dimentionInput):
  6.         row=[]
  7.         for j in range(0, dimentionInput):
  8.             gridCounter += 1
  9.             row.append(gridCounter)
  10.         parentGrid.append(row)
  11.     return parentGrid
  12.    
  13. def is_winner_diagonal(grid):
  14.     checkXfirst = 0
  15.     checkOfirst = 0
  16.     checkXlast = len(grid)-1
  17.     checkOlast = len(grid)-1
  18.     for i in grid:
  19.         if i[checkXfirst] == "X":
  20.             checkXfirst += 1
  21.         if i[checkOfirst] == "O":
  22.             checkOfirst += 1
  23.     if checkXfirst == len(grid):
  24.         print ("Winner is: X")
  25.         new_grid(grid)
  26.         return True
  27.     elif checkXfirst == len(grid):
  28.         print ("Winner is: O")
  29.         new_grid(grid)
  30.         return True
  31.  
  32.     for g in grid:
  33.         if g[checkXlast] == "X":
  34.             checkXlast -= 1
  35.         if g[checkOlast] == "O":
  36.             checkOlast -= 1
  37.     if checkXlast == -1:
  38.         print ("Winner is: X")
  39.         new_grid(grid)
  40.         return True
  41.     elif checkOlast == -1:
  42.         print ("Winner is: O")
  43.         new_grid(grid)
  44.         return True
  45.  
  46.  
  47. def is_winner_straight(grid):
  48.     counter = 0
  49.     while len(grid) > counter:
  50.         for i in grid:
  51.             if all(x == "X" for x in i):
  52.                 new_grid(grid)
  53.                 print ("winner is: X")
  54.                 return True
  55.             if all(o == "O" for o in i):
  56.                 new_grid(grid)
  57.                 print("Winner is: O")
  58.                 return True
  59.         return False
  60.  
  61. def is_winner_down(grid):
  62.     counter = 0
  63.     for i in range (len(grid)):
  64.         counter = 0
  65.         for j in range (len(grid)):
  66.             if grid[j][i] == "X":
  67.                 counter += 1
  68.         if counter == len(grid):
  69.             print("Winner is: X")
  70.             new_grid(grid)
  71.             return True
  72.     for i in range (len(grid)):  
  73.         counter = 0  
  74.         for j in range (len(grid)):
  75.             if grid[j][i] == "O":
  76.                 counter += 1
  77.         if counter == len(grid):
  78.             print("Winner is: O")
  79.             new_grid(grid)
  80.             return True
  81.     return False
  82.  
  83. def user_input(grid,position):
  84.     while True:
  85.         if position == "X":
  86.             userInp = input("X position: ")
  87.         elif position == "O":
  88.             userInp = input("O position: ")
  89.         for i in grid:
  90.             for (x, item) in enumerate(i):
  91.                 if item == int(userInp):
  92.                     i[x] = position
  93.                     if position == "X":
  94.                         position = "O"
  95.                         return grid,position
  96.                     elif position =="O":
  97.                         position = "X"
  98.                         return grid,position
  99.  
  100.         print ("Illegal move!")
  101.            
  102.  
  103. def new_grid(grid):
  104.     for i in range(len(grid)):
  105.         for j in range(len(grid[i])):
  106.             print("{:>5}".format(grid[i][j]), end=' ')
  107.         print()
  108.  
  109. position = "X"
  110. dimentionInput = int(input("Input dimension of the board: "))
  111. grid = make_grid(dimentionInput)
  112. winner = False
  113.  
  114. #main loop
  115. while not winner:
  116.     new_grid(grid)
  117.     grid,position = user_input(grid,position)
  118.     if(is_winner_straight(grid)):
  119.       winner = True
  120.     elif(is_winner_diagonal(grid)):
  121.       winner = True
  122.     elif(is_winner_down(grid)):
  123.         winner = True
  124. new_grid(grid)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement