I found a script I made back while trying to learn Python. It’s a pretty basic example of the game. It’s not much but might be useful for someone learning Python.
#!/usr/bin/python # PyTicTacToe # # Load the board board = " 1 | 2 | 3\n-----------\n 4 | 5 | 6\n-----------\n 7 | 8 | 9" # Set the winning combinations. Paired off in threes # For example: 123 is a winning combo. So is 147. checkboard=[1,2,3,4,5,6,7,8,9,1,4,7,2,5,8,3,6,9,1,5,9,3,5,7] # Set Space Holder spaces=range(1,10) # movehandler function # This function takes the players choice and makes sure it # has not been used. If not, set the move. def moveHandler(board,spaces,checkboard,player,n): # set X for player one, or O for player 2 if player==1: check="X" else: check="O" # Check if block is used. while spaces.count(n)==0: print "\nInvalid Space" n=playerinput(player) # Remove block from spaces array spaces=spaces.remove(n) # Replace block with check mark in board board=board.replace(str(n),check) # Replace space with check mark in checkboard array for c in range(len(checkboard)): if checkboard[c]==n: checkboard[c]=check # Run the checkwinner function status = checkwinner(checkboard,check) return board,status # Checkwinner function # This function checks whether or not a player has a winning # combination based on the checkboard array. def checkwinner(checkboard,check): # Set the array element variables a,b,c=0,1,2 #Loop through checkboard to check winner while a<=21: combo = [checkboard[a],checkboard[b],checkboard[c]] # If we have three 'X' or 'O' we have a winner if combo.count(check) == 3: status =1 break else: status =0 # Iterate to the next combo a+=3 b+=3 c+=3 # Return status of the game return status # def playerinput(player): try: key = int(raw_input('\n\nPlayer ' + str(player) + ': Please select a space ')) except ValueError: print "Invalid Space" key = playerinput(player) return key #Start Game while True: player = len(spaces)%2 +1 if player == 1: player = 2 else: player =1 print "\n\n" + board key = playerinput(player) board,status =moveHandler(board,spaces,checkboard,player,key) if status == 1: print '\n\nPlayer ' + str(player) + ' is the winner!!!' print board break elif len(spaces)==0: print "No more spaces left. Game ends in a TIE!!!" print board break else: continue