Advertisement
Guest User

Tic Tac Toe

a guest
May 13th, 2014
4,795
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.48 KB | None | 0 0
  1. def makeMove(player, board, position):
  2.     if  not board[position]:
  3.         board[position] = player
  4.         return True
  5.     else:
  6.         return False
  7.     return board
  8.  
  9.  
  10. def hasAll(listof3, player):
  11.     for item in listof3:
  12.         if item is not player:
  13.             return False
  14.     return True
  15.  
  16. def winTest(player, board):
  17.     for x in [0,3,6]:
  18.         listof3 = board[x:x+3]
  19.         if hasAll(listof3, player):
  20.             return True
  21.     for x in [0,1,2]:
  22.         listof3 = board[x::3]
  23.         if hasAll(listof3, player):
  24.             return True
  25.     listof3 = board[0::4]
  26.     if hasAll(listof3, player):
  27.         return True
  28.     listof3 = board[2:7:2]
  29.     if hasAll(listof3, player):
  30.         return True
  31.     return False
  32.  
  33. board = [None]*9
  34. player = 'X '
  35.  
  36. while True:
  37.     while player != None:
  38.         print "------------------------------" #displays exisitng board to players
  39.         print "       Board:           Key:  "
  40.         print "%s = [0, 1, 2]" % board[:3]
  41.         print "%s = [3, 4, 5]" % board[3:6]
  42.         print "%s = [6, 7, 8]" % board[6:9]
  43.         print "------------------------------"
  44.         try:
  45.             position = int(raw_input(
  46.                 "It is %s's move. Please enter an unoccupied position:" % player))
  47.             assert position <= 8 and position >= 0
  48.         except:
  49.             print 'error getting input. Try again.'
  50.             continue
  51.        
  52.         if makeMove(player, board, position):
  53.             if winTest(player, board):
  54.                 print " --------------"
  55.                 print "|Player %sWins!|" % player
  56.                 print " --------------"
  57.                 player = None
  58.                 break
  59.             if None not in board:
  60.                 print " -----------"
  61.                 print "|It's a Tie!|"
  62.                 print " -----------"
  63.                 player = None
  64.                 break
  65.             player = {'X ':'O ','O ':'X '}[player]
  66.         else:
  67.             print "That is not a valid position. Try again."
  68.  
  69.  
  70.     while player == None:
  71.         try:
  72.             rematch = raw_input( "Game Over. Would you like to play again? y/n?: ")
  73.         except:
  74.             print "That is not 'y' or 'n'. Please try again."
  75.             continue
  76.         if rematch == 'y':
  77.             board = [None]*9
  78.             player = 'X '
  79.         elif rematch == 'n':
  80.             print "Thank you for playing!"
  81.             break
  82.         else:
  83.             print "Only the letters 'y' or 'n' are valid answers. Please try again."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement