Tic-tac-toe and the ‘Art of Product Management’

Software Product Management is for all those holistic freaks out there who are congizant of the big picture regarding their Solution or Service; such as understanding the concepts and ideas driving their products genesis in the first place, its USPs, potential markets and customers, customers needs, business opportunities, competition, functionality etc..

which brings me on to the minutiae of managing the birth and development of such a thing… Having a coding background helps with handling the minutiae in advance of building an application or product and thinking through the logic and ramifications of choices made prior to development or construction. For example, here is a Python script that plays a tic tac toe game. The issue is not how to code it per se but how to effectively code the win conditions so that the code knows when the game is over, to congratulate the winner and exit smoothly. Of course you could just leave the problem aside or perhaps do it with GREP or REGEX, Which is something that I never really spent much time on. Anyway, here is my first piece of Python code that I will return to to improve my ‘Win Condition’ algorithm.

#!/usr/bin/env python3
global move, turn, whoStarts
storeMove = []
myList = []

availableMoves = ['top-L', 'top-C', 'top-R', 'mid-L', 'mid-C', 'mid-R', 'low-L', 'low-C', 'low-R']

winConditionsX = [['X', 'X', 'X', 'O', 'O', ' ', ' ', ' ', ' '],
                  ['X', 'X', 'X', 'O', ' ', 'O', ' ', ' ', ' '],
                  ['X', 'X', 'X', 'O', ' ', ' ', 'O', ' ', ' '],
                  ['X', 'X', 'X', 'O', ' ', ' ', ' ', 'O', ' '],
                  ['X', 'X', 'X', 'O', ' ', ' ', ' ', ' ', 'O'],
                  ['X', 'X', 'X', ' ', 'O', 'O', ' ', ' ', ' '],
                  ['X', 'X', 'X', ' ', 'O', ' ', 'O', ' ', ' '],
                  ['X', 'X', 'X', ' ', 'O', ' ', ' ', 'O', ' '],
                  ['X', 'X', 'X', ' ', 'O', ' ', ' ', ' ', 'O'],
                  ['X', 'X', 'X', ' ', ' ', 'O', 'O', ' ', ' '],
                  ['X', 'X', 'X', ' ', ' ', ' ', 'O', 'O', ' '],
                  ['X', 'X', 'X', ' ', ' ', ' ', 'O', ' ', 'O'],
                  ['X', 'X', 'X', ' ', ' ', ' ', ' ', 'O', 'O'],
                  ['O', 'O', ' ', 'X', 'X', 'X', ' ', ' ', ' '],
                  ['O', ' ', 'O', 'X', 'X', 'X', ' ', ' ', ' '],
                  ['O', ' ', ' ', 'X', 'X', 'X', 'O', ' ', ' '],
                  ['O', ' ', ' ', 'X', 'X', 'X', ' ', 'O', ' '],
                  ['O', ' ', ' ', 'X', 'X', 'X', ' ', ' ', 'O'],
                  [' ', 'O', 'O', 'X', 'X', 'X', ' ', ' ', ' '],
                  [' ', 'O', ' ', 'X', 'X', 'X', 'O', ' ', ' '],
                  [' ', 'O', ' ', 'X', 'X', 'X', ' ', 'O', ' '],
                  [' ', 'O', ' ', 'X', 'X', 'X', ' ', ' ', 'O'],
                  [' ', ' ', 'O', 'X', 'X', 'X', 'O', ' ', ' '],
                  [' ', ' ', 'O', 'X', 'X', 'X', ' ', 'O', ' '],
                  [' ', ' ', 'O', 'X', 'X', 'X', ' ', ' ', 'O'],
                  [' ', ' ', ' ', 'X', 'X', 'X', 'O', 'O', ' '],
                  [' ', ' ', ' ', 'X', 'X', 'X', 'O', ' ', 'O'],
                  [' ', ' ', ' ', 'X', 'X', 'X', ' ', 'O', 'O'],
                  ['O', 'O', ' ', ' ', ' ', ' ', 'X', 'X', 'X'],
                  ['O', ' ', 'O', ' ', ' ', ' ', 'X', 'X', 'X'],
                  ['O', ' ', ' ', 'O', ' ', ' ', 'X', 'X', 'X'],
                  ['O', ' ', ' ', ' ', 'O', ' ', 'X', 'X', 'X'],
                  ['O', ' ', ' ', ' ', ' ', 'O', 'X', 'X', 'X'],
                  [' ', 'O', 'O', ' ', ' ', ' ', 'X', 'X', 'X'],
                  [' ', 'O', ' ', 'O', ' ', ' ', 'X', 'X', 'X'],
                  [' ', 'O', ' ', ' ', 'O', ' ', 'X', 'X', 'X'],
                  [' ', 'O', ' ', ' ', ' ', 'O', 'X', 'X', 'X'],
                  [' ', ' ', 'O', 'O', ' ', ' ', 'X', 'X', 'X'],
                  [' ', ' ', 'O', ' ', 'O', ' ', 'X', 'X', 'X'],
                  [' ', ' ', 'O', ' ', ' ', 'O', 'X', 'X', 'X'],
                  [' ', ' ', ' ', 'O', 'O', ' ', 'X', 'X', 'X'],
                  [' ', ' ', ' ', 'O', ' ', 'O', 'X', 'X', 'X'],
                  [' ', ' ', ' ', ' ', 'O', 'O', 'X', 'X', 'X'],
                  ['X', 'O', 'O', 'X', ' ', ' ', 'X', ' ', ' '],
                  ['X', 'O', ' ', 'X', 'O', ' ', 'X', ' ', ' '],
                  ['X', 'O', ' ', 'X', ' ', 'O', 'X', ' ', ' '],
                  ['X', 'O', ' ', 'X', ' ', ' ', 'X', 'O', ' '],
                  ['X', 'O', ' ', 'X', ' ', ' ', 'X', ' ', 'O'],
                  ['X', ' ', 'O', 'X', 'O', ' ', 'X', ' ', ' '],
                  ['X', ' ', 'O', 'X', ' ', 'O', 'X', ' ', ' '],
                  ['X', ' ', 'O', 'X', ' ', ' ', 'X', 'O', ' '],
                  ['X', ' ', 'O', 'X', ' ', ' ', 'X', ' ', 'O'],
                  ['X', ' ', ' ', 'X', 'O', 'O', 'X', ' ', ' '],
                  ['X', ' ', ' ', 'X', 'O', ' ', 'X', 'O', ' '],
                  ['X', ' ', ' ', 'X', 'O', ' ', 'X', ' ', 'O'],
                  ['X', ' ', ' ', 'X', ' ', 'O', 'X', 'O', ' '],
                  ['X', ' ', ' ', 'X', ' ', 'O', 'X', ' ', 'O'],
                  ['X', ' ', ' ', 'X', ' ', ' ', 'X', 'O', 'O'],
                  ['O', 'X', 'O', ' ', 'X', ' ', ' ', 'X', ' '],
                  ['O', 'X', ' ', 'O', 'X', ' ', ' ', 'X', ' '],
                  ['O', 'X', ' ', ' ', 'X', 'O', ' ', 'X', ' '],
                  ['O', 'X', ' ', ' ', 'X', ' ', 'O', 'X', ' '],
                  ['O', 'X', ' ', ' ', 'X', ' ', ' ', 'X', 'O'],
                  [' ', 'X', 'O', 'O', 'X', ' ', ' ', 'X', ' '],
                  [' ', 'X', 'O', ' ', 'X', 'O', ' ', 'X', ' '],
                  [' ', 'X', 'O', ' ', 'X', ' ', 'O', 'X', ' '],
                  [' ', 'X', 'O', ' ', 'X', ' ', ' ', 'X', 'O'],
                  [' ', 'X', ' ', 'O', 'X', 'O', ' ', 'X', ' '],
                  [' ', 'X', ' ', 'O', 'X', ' ', 'O', 'X', ' '],
                  [' ', 'X', ' ', 'O', 'X', ' ', ' ', 'X', 'O'],
                  [' ', 'X', ' ', ' ', 'X', 'O', 'O', 'X', ' '],
                  [' ', 'X', ' ', ' ', 'X', 'O', ' ', 'X', 'O'],
                  [' ', 'X', ' ', ' ', 'X', ' ', 'O', 'X', 'O'],
                  ['O', 'O', 'X', ' ', ' ', 'X', ' ', ' ', 'X'],
                  ['O', ' ', 'X', 'O', ' ', 'X', ' ', ' ', 'X'],
                  ['O', ' ', 'X', ' ', 'O', 'X', ' ', ' ', 'X'],
                  ['O', ' ', 'X', ' ', ' ', 'X', 'O', ' ', 'X'],
                  ['O', ' ', 'X', ' ', ' ', 'X', ' ', 'O', 'X'],
                  [' ', 'O', 'X', 'O', ' ', 'X', ' ', ' ', 'X'],
                  [' ', 'O', 'X', ' ', 'O', 'X', ' ', ' ', 'X'],
                  [' ', 'O', 'X', ' ', ' ', 'X', 'O', ' ', 'X'],
                  [' ', 'O', 'X', ' ', ' ', 'X', ' ', 'O', 'X'],
                  [' ', ' ', 'X', 'O', 'O', 'X', ' ', ' ', 'X'],
                  [' ', ' ', 'X', 'O', ' ', 'X', 'O', ' ', 'X'],
                  [' ', ' ', 'X', 'O', ' ', 'X', ' ', 'O', 'X'],
                  [' ', ' ', 'X', ' ', 'O', 'X', 'O', ' ', 'X'],
                  [' ', ' ', 'X', ' ', 'O', 'X', ' ', 'O', 'X'],
                  [' ', ' ', 'X', ' ', ' ', 'X', 'O', 'O', 'X'],
                  ['X', 'O', 'O', ' ', 'X', ' ', ' ', ' ', 'X'],
                  ['X', 'O', ' ', 'O', 'X', ' ', ' ', ' ', 'X'],
                  ['X', 'O', ' ', ' ', 'X', 'O', ' ', ' ', 'X'],
                  ['X', 'O', ' ', ' ', 'X', ' ', 'O', ' ', 'X'],
                  ['X', 'O', ' ', ' ', 'X', ' ', ' ', 'O', 'X'],
                  ['X', ' ', 'O', 'O', 'X', ' ', ' ', ' ', 'X'],
                  ['X', ' ', 'O', ' ', 'X', 'O', ' ', ' ', 'X'],
                  ['X', ' ', 'O', ' ', 'X', ' ', 'O', ' ', 'X'],
                  ['X', ' ', 'O', ' ', 'X', ' ', ' ', 'O', 'X'],
                  ['X', ' ', ' ', 'O', 'X', 'O', ' ', ' ', 'X'],
                  ['X', ' ', ' ', 'O', 'X', ' ', 'O', ' ', 'X'],
                  ['X', ' ', ' ', 'O', 'X', ' ', ' ', 'O', 'X'],
                  ['X', ' ', ' ', ' ', 'X', 'O', 'O', ' ', 'X'],
                  ['X', ' ', ' ', ' ', 'X', 'O', ' ', 'O', 'X'],
                  ['X', ' ', ' ', ' ', 'X', ' ', 'O', 'O', 'X'],
                  ['O', 'O', 'X', ' ', 'X', ' ', 'X', ' ', ' '],
                  ['O', ' ', 'X', 'O', 'X', ' ', 'X', ' ', ' '],
                  ['O', ' ', 'X', ' ', 'X', 'O', 'X', ' ', ' '],
                  ['O', ' ', 'X', ' ', 'X', ' ', 'X', 'O', ' '],
                  ['O', ' ', 'X', ' ', 'X', ' ', 'X', ' ', 'O'],
                  [' ', 'O', 'X', 'O', 'X', ' ', 'X', ' ', ' '],
                  [' ', 'O', 'X', ' ', 'X', 'O', 'X', ' ', ' '],
                  [' ', 'O', 'X', ' ', 'X', ' ', 'X', 'O', ' '],
                  [' ', 'O', 'X', ' ', 'X', ' ', 'X', ' ', 'O'],
                  [' ', ' ', 'X', 'O', 'X', 'O', 'X', ' ', ' '],
                  [' ', ' ', 'X', 'O', 'X', ' ', 'X', 'O', ' '],
                  [' ', ' ', 'X', 'O', 'X', ' ', 'X', ' ', 'O'],
                  [' ', ' ', 'X', ' ', 'X', 'O', 'X', 'O', ' '],
                  [' ', ' ', 'X', ' ', 'X', 'O', 'X', ' ', 'O'],
                  [' ', ' ', 'X', ' ', 'X', ' ', 'X', 'O', 'O'],
                  ['X', 'X', 'X', 'O', 'O', ' ', 'O', ' ', ' '],
                  ['X', 'X', 'X', 'O', 'O', ' ', ' ', 'O', ' '],
                  ['X', 'X', 'X', 'O', 'O', ' ', ' ', ' ', 'O'],
                  ['X', 'X', 'X', ' ', 'O', 'O', 'O', ' ', ' '],
                  ['X', 'X', 'X', ' ', 'O', 'O', ' ', 'O', ' '],
                  ['X', 'X', 'X', ' ', 'O', 'O', ' ', ' ', 'O'],
                  ['X', 'X', 'X', ' ', ' ', 'O', 'O', 'O', ' '],
                  ['X', 'X', 'X', ' ', ' ', 'O', 'O', ' ', 'O'],
                  ['X', 'X', 'X', ' ', ' ', ' ', 'O', 'O', 'O'],
                  ['O', 'O', ' ', 'X', 'X', 'X', 'O', ' ', ' '],
                  ['O', 'O', ' ', 'X', 'X', 'X', ' ', 'O', ' '],
                  ['O', 'O', ' ', 'X', 'X', 'X', ' ', ' ', 'O'],
                  [' ', 'O', 'O', 'X', 'X', 'X', 'O', ' ', ' '],
                  [' ', 'O', 'O', 'X', 'X', 'X', ' ', 'O', ' '],
                  [' ', 'O', 'O', 'X', 'X', 'X', ' ', ' ', 'O'],
                  [' ', ' ', 'O', 'X', 'X', 'X', 'O', 'O', ' '],
                  [' ', ' ', 'O', 'X', 'X', 'X', 'O', ' ', 'O'],
                  ['O', 'O', ' ', 'O', ' ', ' ', 'X', 'X', 'X'],
                  ['O', 'O', ' ', ' ', 'O', ' ', 'X', 'X', 'X'],
                  ['O', 'O', ' ', ' ', ' ', 'O', 'X', 'X', 'X'],
                  [' ', 'O', 'O', 'O', ' ', ' ', 'X', 'X', 'X'],
                  [' ', 'O', 'O', ' ', 'O', ' ', 'X', 'X', 'X'],
                  [' ', 'O', 'O', ' ', ' ', 'O', 'X', 'X', 'X'],
                  [' ', ' ', 'O', 'O', ' ', 'O', 'X', 'X', 'X'],
                  ['X', 'O', 'O', 'X', 'O', ' ', 'X', ' ', ' '],
                  ['X', 'O', 'O', 'X', ' ', 'O', 'X', ' ', ' '],
                  ['X', 'O', 'O', 'X', ' ', ' ', 'X', 'O', ' '],
                  ['X', 'O', 'O', 'X', ' ', ' ', 'X', ' ', 'O'],
                  ['X', ' ', 'O', 'X', 'O', 'O', 'X', ' ', ' '],
                  ['X', ' ', 'O', 'X', 'O', ' ', 'X', 'O', ' '],
                  ['X', ' ', 'O', 'X', 'O', ' ', 'X', ' ', 'O'],
                  ['X', ' ', ' ', 'X', 'O', 'O', 'X', 'O', ' '],
                  ['X', ' ', ' ', 'X', 'O', 'O', 'X', ' ', 'O'],
                  ['X', ' ', ' ', 'X', ' ', 'O', 'X', 'O', 'O'],
                  ['O', 'X', 'O', 'O', 'X', ' ', ' ', 'X', ' '],
                  ['O', 'X', 'O', ' ', 'X', 'O', ' ', 'X', ' '],
                  ['O', 'X', 'O', ' ', 'X', ' ', 'O', 'X', ' '],
                  ['O', 'X', 'O', ' ', 'X', ' ', ' ', 'X', 'O'],
                  [' ', 'X', 'O', 'O', 'X', 'O', ' ', 'X', ' '],
                  [' ', 'X', 'O', 'O', 'X', ' ', 'O', 'X', ' '],
                  [' ', 'X', 'O', 'O', 'X', ' ', ' ', 'X', 'O'],
                  [' ', 'X', ' ', 'O', 'X', 'O', 'O', 'X', ' '],
                  [' ', 'X', ' ', 'O', 'X', 'O', ' ', 'X', 'O'],
                  [' ', 'X', ' ', ' ', 'X', 'O', 'O', 'X', 'O'],
                  ['O', 'O', 'X', 'O', ' ', 'X', ' ', ' ', 'X'],
                  ['O', 'O', 'X', ' ', 'O', 'X', ' ', ' ', 'X'],
                  ['O', 'O', 'X', ' ', ' ', 'X', 'O', ' ', 'X'],
                  ['O', 'O', 'X', ' ', ' ', 'X', ' ', 'O', 'X'],
                  [' ', 'O', 'X', 'O', 'O', 'X', ' ', ' ', 'X'],
                  [' ', 'O', 'X', 'O', ' ', 'X', 'O', ' ', 'X'],
                  [' ', 'O', 'X', 'O', ' ', 'X', ' ', 'O', 'X'],
                  [' ', ' ', 'X', 'O', 'O', 'X', 'O', ' ', 'X'],
                  [' ', ' ', 'X', 'O', 'O', 'X', ' ', 'O', 'X'],
                  [' ', ' ', 'X', ' ', 'O', 'X', 'O', 'O', 'X'],
                  ['X', 'O', 'O', 'O', 'X', ' ', ' ', ' ', 'X'],
                  ['X', 'O', 'O', ' ', 'X', 'O', ' ', ' ', 'X'],
                  ['X', 'O', 'O', ' ', 'X', ' ', 'O', ' ', 'X'],
                  ['X', 'O', 'O', ' ', 'X', ' ', ' ', 'O', 'X'],
                  ['X', ' ', 'O', 'O', 'X', 'O', ' ', ' ', 'X'],
                  ['X', ' ', 'O', 'O', 'X', ' ', 'O', ' ', 'X'],
                  ['X', ' ', 'O', 'O', 'X', ' ', ' ', 'O', 'X'],
                  ['X', ' ', ' ', 'O', 'X', 'O', 'O', ' ', 'X'],
                  ['X', ' ', ' ', 'O', 'X', 'O', ' ', 'O', 'X'],
                  ['X', ' ', ' ', ' ', 'X', 'O', 'O', 'O', 'X'],
                  ['O', 'O', 'X', 'O', 'X', ' ', 'X', ' ', ' '],
                  ['O', 'O', 'X', ' ', 'X', 'O', 'X', ' ', ' '],
                  ['O', 'O', 'X', ' ', 'X', ' ', 'X', 'O', ' '],
                  ['O', 'O', 'X', ' ', 'X', ' ', 'X', ' ', 'O'],
                  [' ', 'O', 'X', 'O', 'X', 'O', 'X', ' ', ' '],
                  [' ', 'O', 'X', 'O', 'X', ' ', 'X', 'O', ' '],
                  [' ', 'O', 'X', 'O', 'X', ' ', 'X', ' ', 'O'],
                  [' ', ' ', 'X', 'O', 'X', 'O', 'X', 'O', ' '],
                  [' ', ' ', 'X', 'O', 'X', 'O', 'X', ' ', 'O'],
                  [' ', ' ', 'X', ' ', 'X', 'O', 'X', 'O', 'O']]


winConditionsO = [['O', 'O', 'O', 'X', 'X', ' ', ' ', ' ', ' '],
                  ['O', 'O', 'O', 'X', ' ', 'X', ' ', ' ', ' '],
                  ['O', 'O', 'O', 'X', ' ', ' ', 'X', ' ', ' '],
                  ['O', 'O', 'O', 'X', ' ', ' ', ' ', 'X', ' '],
                  ['O', 'O', 'O', 'X', ' ', ' ', ' ', ' ', 'X'],
                  ['O', 'O', 'O', ' ', 'X', 'X', ' ', ' ', ' '],
                  ['O', 'O', 'O', ' ', 'X', ' ', 'X', ' ', ' '],
                  ['O', 'O', 'O', ' ', 'X', ' ', ' ', 'X', ' '],
                  ['O', 'O', 'O', ' ', 'X', ' ', ' ', ' ', 'X'],
                  ['O', 'O', 'O', ' ', ' ', 'X', 'X', ' ', ' '],
                  ['O', 'O', 'O', ' ', ' ', ' ', 'X', 'X', ' '],
                  ['O', 'O', 'O', ' ', ' ', ' ', 'X', ' ', 'X'],
                  ['O', 'O', 'O', ' ', ' ', ' ', ' ', 'X', 'X'],
                  ['X', 'X', ' ', 'O', 'O', 'O', ' ', ' ', ' '],
                  ['X', ' ', 'X', 'O', 'O', 'O', ' ', ' ', ' '],
                  ['X', ' ', ' ', 'O', 'O', 'O', 'X', ' ', ' '],
                  ['X', ' ', ' ', 'O', 'O', 'O', ' ', 'X', ' '],
                  ['X', ' ', ' ', 'O', 'O', 'O', ' ', ' ', 'X'],
                  [' ', 'X', 'X', 'O', 'O', 'O', ' ', ' ', ' '],
                  [' ', 'X', ' ', 'O', 'O', 'O', 'X', ' ', ' '],
                  [' ', 'X', ' ', 'O', 'O', 'O', ' ', 'X', ' '],
                  [' ', 'X', ' ', 'O', 'O', 'O', ' ', ' ', 'X'],
                  [' ', ' ', 'X', 'O', 'O', 'O', 'X', ' ', ' '],
                  [' ', ' ', 'X', 'O', 'O', 'O', ' ', 'X', ' '],
                  [' ', ' ', 'X', 'O', 'O', 'O', ' ', ' ', 'X'],
                  [' ', ' ', ' ', 'O', 'O', 'O', 'X', 'X', ' '],
                  [' ', ' ', ' ', 'O', 'O', 'O', 'X', ' ', 'X'],
                  [' ', ' ', ' ', 'O', 'O', 'O', ' ', 'X', 'X'],
                  ['X', 'X', ' ', ' ', ' ', ' ', 'O', 'O', 'O'],
                  ['X', ' ', 'X', ' ', ' ', ' ', 'O', 'O', 'O'],
                  ['X', ' ', ' ', 'X', ' ', ' ', 'O', 'O', 'O'],
                  ['X', ' ', ' ', ' ', 'X', ' ', 'O', 'O', 'O'],
                  ['X', ' ', ' ', ' ', ' ', 'X', 'O', 'O', 'O'],
                  [' ', 'X', 'X', ' ', ' ', ' ', 'O', 'O', 'O'],
                  [' ', 'X', ' ', 'X', ' ', ' ', 'O', 'O', 'O'],
                  [' ', 'X', ' ', ' ', 'X', ' ', 'O', 'O', 'O'],
                  [' ', 'X', ' ', ' ', ' ', 'X', 'O', 'O', 'O'],
                  [' ', ' ', 'X', 'X', ' ', ' ', 'O', 'O', 'O'],
                  [' ', ' ', 'X', ' ', 'X', ' ', 'O', 'O', 'O'],
                  [' ', ' ', 'X', ' ', ' ', 'X', 'O', 'O', 'O'],
                  [' ', ' ', ' ', 'X', 'X', ' ', 'O', 'O', 'O'],
                  [' ', ' ', ' ', 'X', ' ', 'X', 'O', 'O', 'O'],
                  [' ', ' ', ' ', ' ', 'X', 'X', 'O', 'O', 'O'],
                  ['O', 'X', 'X', 'O', ' ', ' ', 'O', ' ', ' '],
                  ['O', 'X', ' ', 'O', 'X', ' ', 'O', ' ', ' '],
                  ['O', 'X', ' ', 'O', ' ', 'X', 'O', ' ', ' '],
                  ['O', 'X', ' ', 'O', ' ', ' ', 'O', 'X', ' '],
                  ['O', 'X', ' ', 'O', ' ', ' ', 'O', ' ', 'X'],
                  ['O', ' ', 'X', 'O', 'X', ' ', 'O', ' ', ' '],
                  ['O', ' ', 'X', 'O', ' ', 'X', 'O', ' ', ' '],
                  ['O', ' ', 'X', 'O', ' ', ' ', 'O', 'X', ' '],
                  ['O', ' ', 'X', 'O', ' ', ' ', 'O', ' ', 'X'],
                  ['O', ' ', ' ', 'O', 'X', 'X', 'O', ' ', ' '],
                  ['O', ' ', ' ', 'O', 'X', ' ', 'O', 'X', ' '],
                  ['O', ' ', ' ', 'O', 'X', ' ', 'O', ' ', 'X'],
                  ['O', ' ', ' ', 'O', ' ', 'X', 'O', 'X', ' '],
                  ['O', ' ', ' ', 'O', ' ', 'X', 'O', ' ', 'X'],
                  ['O', ' ', ' ', 'O', ' ', ' ', 'O', 'X', 'X'],
                  ['X', 'O', 'X', ' ', 'O', ' ', ' ', 'O', ' '],
                  ['X', 'O', ' ', 'X', 'O', ' ', ' ', 'O', ' '],
                  ['X', 'O', ' ', ' ', 'O', 'X', ' ', 'O', ' '],
                  ['X', 'O', ' ', ' ', 'O', ' ', 'X', 'O', ' '],
                  ['X', 'O', ' ', ' ', 'O', ' ', ' ', 'O', 'X'],
                  [' ', 'O', 'X', 'X', 'O', ' ', ' ', 'O', ' '],
                  [' ', 'O', 'X', ' ', 'O', 'X', ' ', 'O', ' '],
                  [' ', 'O', 'X', ' ', 'O', ' ', 'X', 'O', ' '],
                  [' ', 'O', 'X', ' ', 'O', ' ', ' ', 'O', 'X'],
                  [' ', 'O', ' ', 'X', 'O', 'X', ' ', 'O', ' '],
                  [' ', 'O', ' ', 'X', 'O', ' ', 'X', 'O', ' '],
                  [' ', 'O', ' ', 'X', 'O', ' ', ' ', 'O', 'X'],
                  [' ', 'O', ' ', ' ', 'O', 'X', 'X', 'O', ' '],
                  [' ', 'O', ' ', ' ', 'O', 'X', ' ', 'O', 'X'],
                  [' ', 'O', ' ', ' ', 'O', ' ', 'X', 'O', 'X'],
                  ['X', 'X', 'O', ' ', ' ', 'O', ' ', ' ', 'O'],
                  ['X', ' ', 'O', 'X', ' ', 'O', ' ', ' ', 'O'],
                  ['X', ' ', 'O', ' ', 'X', 'O', ' ', ' ', 'O'],
                  ['X', ' ', 'O', ' ', ' ', 'O', 'X', ' ', 'O'],
                  ['X', ' ', 'O', ' ', ' ', 'O', ' ', 'X', 'O'],
                  [' ', 'X', 'O', 'X', ' ', 'O', ' ', ' ', 'O'],
                  [' ', 'X', 'O', ' ', 'X', 'O', ' ', ' ', 'O'],
                  [' ', 'X', 'O', ' ', ' ', 'O', 'X', ' ', 'O'],
                  [' ', 'X', 'O', ' ', ' ', 'O', ' ', 'X', 'O'],
                  [' ', ' ', 'O', 'X', 'X', 'O', ' ', ' ', 'O'],
                  [' ', ' ', 'O', 'X', ' ', 'O', 'X', ' ', 'O'],
                  [' ', ' ', 'O', 'X', ' ', 'O', ' ', 'X', 'O'],
                  [' ', ' ', 'O', ' ', 'X', 'O', 'X', ' ', 'O'],
                  [' ', ' ', 'O', ' ', 'X', 'O', ' ', 'X', 'O'],
                  [' ', ' ', 'O', ' ', ' ', 'O', 'X', 'X', 'O'],
                  ['O', 'X', 'X', ' ', 'O', ' ', ' ', ' ', 'O'],
                  ['O', 'X', ' ', 'X', 'O', ' ', ' ', ' ', 'O'],
                  ['O', 'X', ' ', ' ', 'O', 'X', ' ', ' ', 'O'],
                  ['O', 'X', ' ', ' ', 'O', ' ', 'X', ' ', 'O'],
                  ['O', 'X', ' ', ' ', 'O', ' ', ' ', 'X', 'O'],
                  ['O', ' ', 'X', 'X', 'O', ' ', ' ', ' ', 'O'],
                  ['O', ' ', 'X', ' ', 'O', 'X', ' ', ' ', 'O'],
                  ['O', ' ', 'X', ' ', 'O', ' ', 'X', ' ', 'O'],
                  ['O', ' ', 'X', ' ', 'O', ' ', ' ', 'X', 'O'],
                  ['O', ' ', ' ', 'X', 'O', 'X', ' ', ' ', 'O'],
                  ['O', ' ', ' ', 'X', 'O', ' ', 'X', ' ', 'O'],
                  ['O', ' ', ' ', 'X', 'O', ' ', ' ', 'X', 'O'],
                  ['O', ' ', ' ', ' ', 'O', 'X', 'X', ' ', 'O'],
                  ['O', ' ', ' ', ' ', 'O', 'X', ' ', 'X', 'O'],
                  ['O', ' ', ' ', ' ', 'O', ' ', 'X', 'X', 'O'],
                  ['X', 'X', 'O', ' ', 'O', ' ', 'O', ' ', ' '],
                  ['X', ' ', 'O', 'X', 'O', ' ', 'O', ' ', ' '],
                  ['X', ' ', 'O', ' ', 'O', 'X', 'O', ' ', ' '],
                  ['X', ' ', 'O', ' ', 'O', ' ', 'O', 'X', ' '],
                  ['X', ' ', 'O', ' ', 'O', ' ', 'O', ' ', 'X'],
                  [' ', 'X', 'O', 'X', 'O', ' ', 'O', ' ', ' '],
                  [' ', 'X', 'O', ' ', 'O', 'X', 'O', ' ', ' '],
                  [' ', 'X', 'O', ' ', 'O', ' ', 'O', 'X', ' '],
                  [' ', 'X', 'O', ' ', 'O', ' ', 'O', ' ', 'X'],
                  [' ', ' ', 'O', 'X', 'O', 'X', 'O', ' ', ' '],
                  [' ', ' ', 'O', 'X', 'O', ' ', 'O', 'X', ' '],
                  [' ', ' ', 'O', 'X', 'O', ' ', 'O', ' ', 'X'],
                  [' ', ' ', 'O', ' ', 'O', 'X', 'O', 'X', ' '],
                  [' ', ' ', 'O', ' ', 'O', 'X', 'O', ' ', 'X'],
                  [' ', ' ', 'O', ' ', 'O', ' ', 'O', 'X', 'X'],
                  ['O', 'O', 'O', 'X', 'X', ' ', 'X', ' ', ' '],
                  ['O', 'O', 'O', 'X', 'X', ' ', ' ', 'X', ' '],
                  ['O', 'O', 'O', 'X', 'X', ' ', ' ', ' ', 'X'],
                  ['O', 'O', 'O', ' ', 'X', 'X', 'X', ' ', ' '],
                  ['O', 'O', 'O', ' ', 'X', 'X', ' ', 'X', ' '],
                  ['O', 'O', 'O', ' ', 'X', 'X', ' ', ' ', 'X'],
                  ['O', 'O', 'O', ' ', ' ', 'X', 'X', 'X', ' '],
                  ['O', 'O', 'O', ' ', ' ', 'X', 'X', ' ', 'X'],
                  ['O', 'O', 'O', ' ', ' ', ' ', 'X', 'X', 'X'],
                  ['X', 'X', ' ', 'O', 'O', 'O', 'X', ' ', ' '],
                  ['X', 'X', ' ', 'O', 'O', 'O', ' ', 'X', ' '],
                  ['X', 'X', ' ', 'O', 'O', 'O', ' ', ' ', 'X'],
                  [' ', 'X', 'X', 'O', 'O', 'O', 'X', ' ', ' '],
                  [' ', 'X', 'X', 'O', 'O', 'O', ' ', 'X', ' '],
                  [' ', 'X', 'X', 'O', 'O', 'O', ' ', ' ', 'X'],
                  [' ', ' ', 'X', 'O', 'O', 'O', 'X', 'X', ' '],
                  [' ', ' ', 'X', 'O', 'O', 'O', 'X', ' ', 'X'],
                  ['X', 'X', ' ', 'X', ' ', ' ', 'O', 'O', 'O'],
                  ['X', 'X', ' ', ' ', 'X', ' ', 'O', 'O', 'O'],
                  ['X', 'X', ' ', ' ', ' ', 'X', 'O', 'O', 'O'],
                  [' ', 'X', 'X', 'X', ' ', ' ', 'O', 'O', 'O'],
                  [' ', 'X', 'X', ' ', 'X', ' ', 'O', 'O', 'O'],
                  [' ', 'X', 'X', ' ', ' ', 'X', 'O', 'O', 'O'],
                  [' ', ' ', 'X', 'X', ' ', 'X', 'O', 'O', 'O'],
                  ['O', 'X', 'X', 'O', 'X', ' ', 'O', ' ', ' '],
                  ['O', 'X', 'X', 'O', ' ', 'X', 'O', ' ', ' '],
                  ['O', 'X', 'X', 'O', ' ', ' ', 'O', 'X', ' '],
                  ['O', 'X', 'X', 'O', ' ', ' ', 'O', ' ', 'X'],
                  ['O', ' ', 'X', 'O', 'X', 'X', 'O', ' ', ' '],
                  ['O', ' ', 'X', 'O', 'X', ' ', 'O', 'X', ' '],
                  ['O', ' ', 'X', 'O', 'X', ' ', 'O', ' ', 'X'],
                  ['O', ' ', ' ', 'O', 'X', 'X', 'O', 'X', ' '],
                  ['O', ' ', ' ', 'O', 'X', 'X', 'O', ' ', 'X'],
                  ['O', ' ', ' ', 'O', ' ', 'X', 'O', 'X', 'X'],
                  ['X', 'O', 'X', 'X', 'O', ' ', ' ', 'O', ' '],
                  ['X', 'O', 'X', ' ', 'O', 'X', ' ', 'O', ' '],
                  ['X', 'O', 'X', ' ', 'O', ' ', 'X', 'O', ' '],
                  ['X', 'O', 'X', ' ', 'O', ' ', ' ', 'O', 'X'],
                  [' ', 'O', 'X', 'X', 'O', 'X', ' ', 'O', ' '],
                  [' ', 'O', 'X', 'X', 'O', ' ', 'X', 'O', ' '],
                  [' ', 'O', 'X', 'X', 'O', ' ', ' ', 'O', 'X'],
                  [' ', 'O', ' ', 'X', 'O', 'X', 'X', 'O', ' '],
                  [' ', 'O', ' ', 'X', 'O', 'X', ' ', 'O', 'X'],
                  [' ', 'O', ' ', ' ', 'O', 'X', 'X', 'O', 'X'],
                  ['X', 'X', 'O', 'X', ' ', 'O', ' ', ' ', 'O'],
                  ['X', 'X', 'O', ' ', 'X', 'O', ' ', ' ', 'O'],
                  ['X', 'X', 'O', ' ', ' ', 'O', 'X', ' ', 'O'],
                  ['X', 'X', 'O', ' ', ' ', 'O', ' ', 'X', 'O'],
                  [' ', 'X', 'O', 'X', 'X', 'O', ' ', ' ', 'O'],
                  [' ', 'X', 'O', 'X', ' ', 'O', 'X', ' ', 'O'],
                  [' ', 'X', 'O', 'X', ' ', 'O', ' ', 'X', 'O'],
                  [' ', ' ', 'O', 'X', 'X', 'O', 'X', ' ', 'O'],
                  [' ', ' ', 'O', 'X', 'X', 'O', ' ', 'X', 'O'],
                  [' ', ' ', 'O', ' ', 'X', 'O', 'X', 'X', 'O'],
                  ['O', 'X', 'X', 'X', 'O', ' ', ' ', ' ', 'O'],
                  ['O', 'X', 'X', ' ', 'O', 'X', ' ', ' ', 'O'],
                  ['O', 'X', 'X', ' ', 'O', ' ', 'X', ' ', 'O'],
                  ['O', 'X', 'X', ' ', 'O', ' ', ' ', 'X', 'O'],
                  ['O', ' ', 'X', 'X', 'O', 'X', ' ', ' ', 'O'],
                  ['O', ' ', 'X', 'X', 'O', ' ', 'X', ' ', 'O'],
                  ['O', ' ', 'X', 'X', 'O', ' ', ' ', 'X', 'O'],
                  ['O', ' ', ' ', 'X', 'O', 'X', 'X', ' ', 'O'],
                  ['O', ' ', ' ', 'X', 'O', 'X', ' ', 'X', 'O'],
                  ['O', ' ', ' ', ' ', 'O', 'X', 'X', 'X', 'O'],
                  ['X', 'X', 'O', 'X', 'O', ' ', 'O', ' ', ' '],
                  ['X', 'X', 'O', ' ', 'O', 'X', 'O', ' ', ' '],
                  ['X', 'X', 'O', ' ', 'O', ' ', 'O', 'X', ' '],
                  ['X', 'X', 'O', ' ', 'O', ' ', 'O', ' ', 'X'],
                  [' ', 'X', 'O', 'X', 'O', 'X', 'O', ' ', ' '],
                  [' ', 'X', 'O', 'X', 'O', ' ', 'O', 'X', ' '],
                  [' ', 'X', 'O', 'X', 'O', ' ', 'O', ' ', 'X'],
                  [' ', ' ', 'O', 'X', 'O', 'X', 'O', 'X', ' '],
                  [' ', ' ', 'O', 'X', 'O', 'X', 'O', ' ', 'X'],
                  [' ', ' ', 'O', ' ', 'O', 'X', 'O', 'X', 'X']]
maxLengthList = 9


print('* *   WELCOME to PAUL\'S TIC-TAC-TOE   * *')
print('                     ')
print('top-L | top-C | top-R')
print('------|-------|------')
print('mid-L | mid-C | mid-R')
print('------|-------|------')
print('low-L | low-C | low-R')
print('                     ')
    
theBoard = {'top-L': ' ', 'top-C': ' ', 'top-R': ' ',
            'mid-L': ' ', 'mid-C': ' ', 'mid-R': ' ',
            'low-L': ' ', 'low-C': ' ', 'low-R': ' '}


def printBoard(board):
    print('                 ')
    print(board['top-L'] + '|' + board['top-C'] + '|' + board['top-R'])
    print('-+-+-')
    print(board['mid-L'] + '|' + board['mid-C'] + '|' + board['mid-R'])
    print('-+-+-')
    print(board['low-L'] + '|' + board['low-C'] + '|' + board['low-R'])
    print('                 ')



while True:
    print('Who goes first X or O ?')
    whoStarts = input()
    if 'X' in whoStarts:
        turn = 'X'
        break
    if 'O' in whoStarts:
        turn = 'O'
        break
    if 'X' or 'O' not in whoStarts:
        continue

for i in range(9):
    printBoard(theBoard)
    
    while True:
        print('Turn for  ' + turn + ' . Move on which space?')
        move = input()
    
        if move not in availableMoves:
            print('Unknown move. Try again')
            continue
        if move in storeMove:
            print('Can\'t move there')
            continue
        if move not in storeMove:   
            storeMove.append(move) 
            theBoard[move] = turn
            myList = list(theBoard.values())
            #print(myList)
            if myList in winConditionsX:
                print(' ')
                print('X Wins!')
                print(' ')
                quit
            if myList in winConditionsO:
                print(' ')
                print('O Wins!')
                print(' ')
                quit
            
            if turn  == 'X':
                turn  = 'O'
            else:
                turn = 'X'