So, da ich ab übermorgen weg bin und keine Ahnung hab, ob ich mein Spiel bis dahin fertig kriege, aber gesagt habe, dass selbst ein command line-Tic Tac Toe besser ist als nichts, poste ich einfach mal... ein command line-Tic Tac Toe. Sollte ich nichts mehr weiter einreichen, ist das hier meine Einsendung

Code:
#!/usr/bin/python

from itertools import chain

class Field(object):
    def __init__(self):
        self._data = [0] * 9

    def set(self, player, n):
        if not 1 <= n <= 9 or self._data[n-1] != 0:
            raise ValueError('invalid field')
        else:
            self._data[n-1] = player

    def winner(self):
        return (set(s.pop() for s in chain(*[(set(self._data[i:i+7:3]), set(self._data[i*3:i*3+3])) for i in xrange(3)] + [(set(self._data[::4]), set(self._data[2:8:2]))]) if len(s) == 1 and s != set([0])) or set([0])).pop()

    def render(self):
        return '\n-+-+-\n'.join('|'.join([[' ', 'x', 'o'][i] for i in self._data][j:j+3]) for j in xrange(0, 9, 3))

def main():
    print 'Enter the number of a field to put your mark there\n\n\n1|2|3\n-+-+-\n4|5|6\n-+-+-\n7|8|9\n\n'
    f = Field()
    turn = 1
    while turn < 10 and not f.winner():
        print '\n' + f.render() + '\n\n'
        player = 2 - turn % 2
        s = raw_input("player %s's turn: " % {1:'x', 2:'o'}[player])
        try:
            f.set(player, int(s))
        except ValueError:
            print 'invalid turn, try again'
        else:
            turn += 1
    print '\n' + f.render() + '\n\n'
    if f.winner():
        print "player %s wins!" % {1:'x', 2:'o'}[f.winner()]
    else:
        print 'draw!'

if __name__ == '__main__':
    main()
Ach ja, Lizenz ist die MIT-Lizenz.