summaryrefslogtreecommitdiff
path: root/TicTacToe.py
blob: 4bfc0ae7beb26decc00931cabdc59fed52b79e59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
class TicTacToe:
    def __init__(self):
        self.board = {'a3':' ','b3': ' ','c3': ' ','a2' : ' ','b2':' ','c2' : ' ', 'a1': ' ', 'b1' : ' ','c1' : ' '}
        self.turn = 'X'
        self.turns = 0
    def flipTurn(self,turn):
        return {'X':'O','O':'X'}[turn]
    def printBoard(self):
        print('\n'*200,
        '''
    {} | {} | {} 3
    ----------
    {} | {} | {} 2
    ----------
    {} | {} | {} 1
    a   b  c
    '''.format(self.board['a3'],self.board['b3'],self.board['c3'],self.board['a2'],self.board['b2'],self.board['c2'],self.board['a1'],self.board['b1'],self.board['c1']))
    def getWin (self,space1,space2,space3):
        if(self.board[space1] == 'X' and self.board[space2] == 'X' and self.board[space3] == 'X' or self.board[space1] == 'O' and self.board[space2] == 'O' and self.board[space3] == 'O'):
            input('{} won! Ctrl+C to quit, enter to start a new game'.format(self.flipTurn(self.turn)))
            win = True
            import TicTacToe
            quit()
    def testers(self):
        self.getWin('a3','b3','c3')
        self.getWin('a2','b2','c2')
        self.getWin('a1','b1','c1')
        self.getWin('a3','a2','a1')
        self.getWin('b2','b3','b1')
        self.getWin('c1','c2','c3')
        self.getWin('a1','b2','c3')
        self.getWin('a3','b2','c1')
    def gameLoop(self):
        self.win = False
        while True:
            if self.turns == 9:
                input('Enter to play again, CTRL + C to quit')
                import TicTacToe
                quit()
            self.printBoard()
            self.testers()
            self.turns += 1
            print('It is ',self.turn,"'s turn. Put in move: ")
            invalid = True
            while(invalid):
                place = input()
                if(place in self.board.keys()):
                    if(self.board[place] == ' '):
                        invalid = False
                if not self.win:
                    if self.turns == 9:
                        print('Cat')
                    else:
                        print('That move is invalid. Try again!')
            self.board[place] = self.turn
            self.turn = self.flipTurn(self.turn)
board = TicTacToe()
board.gameLoop()