Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Player_1(board)
- def main():
- global movecounter
- movecounter = 0
- boardsize = inputBoardSize()
- board = defineBoard(boardsize) #define board dimension
- createBoardLabels(board, boardsize)
- Player_1(board,boardsize)
- def defineBoard(boardsize):
- board = [[""] * boardsize for i in range(boardsize)] #make the basic (non-drawable) version of theboard
- return board
- def inputBoardSize(): #this is so we can make a board of any dimension we like
- boardsize = 3 #not used in this version, but if it was, how?
- return int(boardsize)
- def createBoardLabels(board, boardsize): #<your comment>
- counter = 0
- for i in range(boardsize):
- for j in range(boardsize):
- counter +=1
- board[i][j] = counter
- return (board)
- def print_divider (boardsize): #<your comment>
- print ('|'.join(['____' for x in range(boardsize)]))
- def print_blank (boardsize):
- print ('|'.join([' ' for x in range(boardsize)])) #<your comment>
- def print_labels(counter, board, boardsize): #<your comment>
- row = ' | '.join(['%2s' % board[counter][x] for x in range(boardsize)])
- row = ' ' + row
- print(row)
- def drawBoard(board, boardsize): #<your comment>
- for i in range(boardsize):
- print_blank(boardsize)
- print_labels(i,board, boardsize)
- if (i == boardsize-1):
- print_blank(boardsize)
- else:
- print_divider(boardsize)
- def win(board):
- if check_win_1(board):
- return True
- if check_win_2(board):
- return True
- if check_win_3(board):
- return True
- else:
- return False
- def check_win_1 (board):
- if board[0][0] == board[1][0] and board[1][0] == board[2][0]: #first vertical
- return True
- if board[0][1] == board[1][1] and board[1][1] == board[2][1]: #middle vertical
- return True
- if board [0][2] == board[1][2] and board[1][2] == board[2][2]: #right vertical
- return True
- #check_win_1(board)
- def check_win_2 (board):
- if board[0][0] == board[0][1] and board[0][1] == board[0][2]: #first hoz
- return True
- if board[1][0] == board[1][1] and board[1][1] == board[1][2]: #second hoz
- return True
- if board[2][0] == board[2][1] and board[2][1] == board[2][2]: #third hoz
- return True
- #check_win_2(board)
- def check_win_3 (board):
- if board[0][0] == board[1][1] and board[1][1] == board[2][2]: #diag L-R
- return True
- if board[0][2] == board[1][1] and board[1][1] == board[2][0]: #diag R-L
- return True
- #else:
- #print (win)
- #check_win_3(board)
- def Player_1(board,boardsize):
- elem = 'X'
- position = input('Player 1, enter number you want to play: ')
- global movecounter
- movecounter = movecounter + 1
- updateBoard(board,boardsize,position,elem)
- drawBoard(board, boardsize)
- if win(board):
- print('Player 1 wins!')
- elif movecounter == 9 and win(board) == False:
- print('it\'s a draw')
- exit()
- else:
- Player_2(board,boardsize)
- def Player_2(board,boardsize):
- elem = '0'
- position = input('Player 2, enter number you want to play: ')
- global movecounter
- movecounter = movecounter + 1
- updateBoard(board,boardsize,position,elem)
- drawBoard(board, boardsize)
- if win(board):
- print ('Player 2 wins!')
- elif movecounter == 9 and win(board) == False:
- print ('it\'s a draw')
- exit()
- else:
- Player_1(board,boardsize)
- def updateBoard(board,boardsize,position,elem):
- for i in range(len(board)):
- for j in range(len(board)):
- if board[i][j] == position:
- board[i][j] = elem
- return board
- main() #run the program
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement