Week 16 - Tic tac toe random move

posted Feb 10, 2017, 7:50 AM by Attila Lengyel   [ updated Feb 10, 2017, 8:00 AM ]
import random

def drawBoard(board):
  print("    |   |   ")
  print(" ",board[0],"|",board[1],"|",board[2])
  print("    |   |   ")  
  print("-------------")
  print("    |   |   ")
  print(" ",board[3],"|",board[4],"|",board[5])
  print("    |   |   ")  
  print("-------------")
  print("    |   |   ")
  print(" ",board[6],"|",board[7],"|",board[8])
  print("    |   |   ")  

def win(board, player):
  if board[0] == player and board[1] == player and board[2] == player:
    return True
  if board[3] == player and board[4] == player and board[5] == player:
    return True
  if board[6] == player and board[7] == player and board[8] == player:
    return True
  if board[0] == player and board[3] == player and board[6] == player:
    return True
  if board[1] == player and board[4] == player and board[7] == player:
    return True
  if board[2] == player and board[5] == player and board[8] == player:
    return True
  if board[0] == player and board[4] == player and board[8] == player:
    return True
  if board[2] == player and board[4] == player and board[6] == player:
    return True
  
  return False

def opponent(sUser):
  if sUser == "O":
    return "X"
  return "O"
  
def randommove(board, sUser):
  emptystep = []
  for x in range(0,9):
    if board[x] == " ":
      emptystep.append(x)
  
  move = random.randint(0,len(emptystep)-1)
  move = emptystep[move]
  return move

tttBoard = [" "] * 9
drawBoard(tttBoard)

user = input("X or O?:")
if user != "O" and user != "X":
  print("You will be X")
  user = "X"
print("The computer is", opponent(user))

while(True):
  move = input("Make your move (1~9):")
  if tttBoard[int(move) - 1] != " ":
    print("You lost your move!!!")
  else:
    tttBoard[int(move) - 1] = user
  
  drawBoard(tttBoard)
  if win(tttBoard, user):
    print("The", user, "won!!!")
    break
  
  move = randommove(tttBoard,opponent(user))
  tttBoard[move] = opponent(user)
  print("The Attila moves", move + 1)
  
  drawBoard(tttBoard)
  
  if win(tttBoard, opponent(user)):
    print("The", opponent(user), "won!!!")
    break

Comments