Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #This is a game of Tic Tac Toe, coded by Aziz Hayat.
- from random import *
- #GameOn = True
- #col = 0
- #row = 0
- #end = 0
- board = []
- difficulty = ''
- print "*************************************"
- print "Welcome to the game of Tic Tac Toe! Built by Aziz!"
- print "*************************************"
- print "In this game, you will be playing against SkyNet!"
- for x in range(3):
- board.append(["#", "#", "#"])
- def print_board(board):
- for row in board:
- print " ".join(row)
- def row_position(number):
- row = 0
- if number == 1:
- row = 0
- elif number == 2:
- row = 0
- elif number == 3:
- row = 0
- elif number == 4:
- row = 1
- elif number == 5:
- row = 1
- elif number == 6:
- row = 1
- elif number == 7:
- row = 2
- elif number == 8:
- row = 2
- elif number == 9:
- row = 2
- return row
- def col_position(number):
- col = 0
- if number == 1:
- col = 0
- elif number == 2:
- col = 1
- elif number == 3:
- col = 2
- elif number == 4:
- col = 0
- elif number == 5:
- col = 1
- elif number == 6:
- col = 2
- elif number == 7:
- col = 0
- elif number == 8:
- col = 1
- elif number == 9:
- col = 2
- return col
- while difficulty != 'easy' and difficulty != 'hard':
- difficulty = str(raw_input("What difficulty level do you prefer; easy or hard? (type it out) \n"))
- difficulty = difficulty.lower()
- def player_choice():
- print "Enter the number of the empty position you select:"
- print "Top Left = 1"
- print "Top Center = 2"
- print "Top Right = 3"
- print "Center Left = 4"
- print "Dead Center = 5"
- print "Center Right = 6"
- print "Bottom Left = 7"
- print "Bottom Center = 8"
- print "Bottom Right = 9"
- print "********"
- print_board(board)
- flag = 0
- #proceed = False
- while flag == 0:
- player_choice = 0
- while player_choice > 9 or player_choice < 1:
- player_choice = int(raw_input("Enter Number: "))
- test_row = row_position(player_choice)
- test_col = col_position(player_choice)
- if board[test_row][test_col] == "#":
- flag = 1
- else:
- print 'Uh-Oh! Try Again! Choose a spot without an X or an O!'
- if flag == 1:
- player_row = row_position(player_choice)
- player_col = col_position(player_choice)
- board[player_row][player_col] = "X"
- def comp_choice():
- flag = 0
- comp_choice = 0
- while flag != 1:
- comp_choice = int(randint(1,10))
- comp_row = row_position(comp_choice)
- comp_col = col_position(comp_choice)
- if board[comp_row][comp_col] == "#":
- board[comp_row][comp_col] = "O"
- flag = 1
- else:
- flag = 0
- ###################################################
- def comp_choice_hard():
- flag = 0
- while flag != 1:
- '''
- Need to figure out what to do here in case it fails.
- If user inputs 5 the computer does not make a move.
- '''
- if board[0][0] == 'X' and board[2][2] == '#':
- board[2][2] = 'O'
- flag = 1
- elif board [0][2] == 'X' and board[2][0] == '#':
- board[2][0] = 'O'
- flag = 1
- elif board[2][0] == 'X' and board[0][2] == '#':
- board[0][2] = 'O'
- flag = 1
- elif board [2][2] == 'X' and board[0][0] == '#':
- board[0][0] = 'O'
- flag = 1
- elif board[0][1] == 'X' and board[2][1] == '#':
- board[2][1] = 'O'
- flag = 1
- elif board[2][1] == 'X' and board[0][1] == '#':
- board[0][1] = 'O'
- flag = 1
- elif board[2][0] == 'X' and board[2][2] == '#' :
- board[2][2] = 'O'
- flag = 1
- elif board[2][2] == 'X' and board[2][0] == '#':
- board[2][0] = 'O'
- flag = 1
- ####################################################
- def check_win(n):
- if board[0][0] == n and board[1][0] == n and board[2][0] == n:
- print n, " Wins! Congratulations!"
- #GameOn = False
- return 1
- #Checks left vertical win
- elif board[0][1] == n and board[1][1] == n and board[2][1] == n:
- print n, " Wins! Congratulations!"
- # GameOn = False
- return 1
- #Checks center vertical win
- elif board[0][2] == n and board[1][2] == n and board[2][2] == n:
- print n, " Wins! Congratulations!"
- #GameOn = False
- return 1
- #Checks right vertical win
- elif board[0][0] == n and board[0][1] == n and board[0][2] == n:
- print n, " Wins! Congratulations!"
- #GameOn = False
- return 1
- #Checks top horizontal win
- elif board[1][0] == n and board[1][1] == n and board[1][2] == n:
- print n, " Wins! Congratulations!"
- #GameOn = False
- return 1
- #Checks center horizontal win
- elif board[2][0] == n and board[2][1] == n and board[2][2] == n:
- print n, " Wins! Congratulations!"
- #GameOn = False
- return 1
- #Checks bottom horizontal win
- elif board[0][0] == n and board[1][1] == n and board[2][2] == n:
- print n, " Wins! Congratulations!"
- #GameOn = False
- return 1
- #Checks top left to bottom right diagonal win
- elif board[0][2] == n and board[1][1] == n and board[2][0] == n:
- print n, " Wins! Congratulations!"
- #GameOn = False
- return 1
- #Checks top right to bottom left diagonal win
- else:
- return 0
- def check_tie(board):
- check = 0
- for i in board:
- for j in i:
- if j == '#':
- check = 1
- while check == 0:
- print "Looks like a tie!"
- break
- #Main game loop if difficulty = easy:
- if difficulty == 'easy':
- end1 = 0
- end2 = 0
- while end1 == 0 or end2 == 0:
- player_choice()
- print_board(board)
- end1 = check_win("X")
- if end1 != 0:
- break
- check_tie(board)
- comp_choice()
- #print_board(board)
- end2 = check_win("O")
- if end2 != 0:
- print_board(board)
- break
- #Main game loop if difficulty = hard:
- if difficulty == 'hard':
- end1 = 0
- end2 = 0
- diff_count = 1
- while end1 == 0 or end2 == 0:
- player_choice()
- print_board(board)
- end1 = check_win("X")
- if end1 != 0:
- break
- check_tie(board)
- if diff_count % 2 == 0:
- comp_choice_hard()
- diff_count += 1
- else:
- comp_choice()
- diff_count += 1
- #print_board(board)
- end2 = check_win("O")
- if end2 != 0:
- print_board(board)
- break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement