Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def make_grid(dimentionInput):
- gridCounter = 0
- parentGrid=[]
- for i in range(0, dimentionInput):
- row=[]
- for j in range(0, dimentionInput):
- gridCounter += 1
- row.append(gridCounter)
- parentGrid.append(row)
- return parentGrid
- def is_winner_diagonal(grid):
- checkXfirst = 0
- checkOfirst = 0
- checkXlast = len(grid)-1
- checkOlast = len(grid)-1
- for i in grid:
- if i[checkXfirst] == "X":
- checkXfirst += 1
- if i[checkOfirst] == "O":
- checkOfirst += 1
- if checkXfirst == len(grid):
- print ("Winner is: X")
- new_grid(grid)
- return True
- elif checkXfirst == len(grid):
- print ("Winner is: O")
- new_grid(grid)
- return True
- for g in grid:
- if g[checkXlast] == "X":
- checkXlast -= 1
- if g[checkOlast] == "O":
- checkOlast -= 1
- if checkXlast == -1:
- print ("Winner is: X")
- new_grid(grid)
- return True
- elif checkOlast == -1:
- print ("Winner is: O")
- new_grid(grid)
- return True
- def is_winner_straight(grid):
- counter = 0
- while len(grid) > counter:
- for i in grid:
- if all(x == "X" for x in i):
- new_grid(grid)
- print ("winner is: X")
- return True
- if all(o == "O" for o in i):
- new_grid(grid)
- print("Winner is: O")
- return True
- return False
- def is_winner_down(grid):
- counter = 0
- for i in range (len(grid)):
- counter = 0
- for j in range (len(grid)):
- if grid[j][i] == "X":
- counter += 1
- if counter == len(grid):
- print("Winner is: X")
- new_grid(grid)
- return True
- for i in range (len(grid)):
- counter = 0
- for j in range (len(grid)):
- if grid[j][i] == "O":
- counter += 1
- if counter == len(grid):
- print("Winner is: O")
- new_grid(grid)
- return True
- return False
- def user_input(grid,position):
- while True:
- if position == "X":
- userInp = input("X position: ")
- elif position == "O":
- userInp = input("O position: ")
- for i in grid:
- for (x, item) in enumerate(i):
- if item == int(userInp):
- i[x] = position
- if position == "X":
- position = "O"
- return grid,position
- elif position =="O":
- position = "X"
- return grid,position
- print ("Illegal move!")
- def new_grid(grid):
- for i in range(len(grid)):
- for j in range(len(grid[i])):
- print("{:>5}".format(grid[i][j]), end=' ')
- print()
- position = "X"
- dimentionInput = int(input("Input dimension of the board: "))
- grid = make_grid(dimentionInput)
- winner = False
- #main loop
- while not winner:
- new_grid(grid)
- grid,position = user_input(grid,position)
- if(is_winner_straight(grid)):
- winner = True
- elif(is_winner_diagonal(grid)):
- winner = True
- elif(is_winner_down(grid)):
- winner = True
- new_grid(grid)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement