Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- nkk = ['Nichts', 'Spieler 1', 'Spieler 2']
- nichts = 0
- kreuz = 1
- kreis = 2
- field = [[nichts, nichts, nichts], [nichts, nichts, nichts], [nichts, nichts, nichts]]
- def istIntInSpielfeld(s):
- try:
- i = int(s)
- if(i < 1 or i > 3):
- return False
- return True
- except ValueError:
- return False
- def setzen(wert, x, y):
- field[y-1][x-1] = wert
- def getFieldString(f):
- s = ''
- for le in f:
- for e in le:
- if(e == kreuz):
- s += 'X'
- elif(e == kreis):
- s += 'O'
- else:
- s += '.'
- s += '\n'
- return s
- def tryWinner(f):
- winner = nichts
- if(f[0][0] == f[1][0] == f[2][0] or f[0][0] == f[0][1] == f[0][2]):
- winner = f[0][0]
- elif(f[0][1] == f[1][1] == f[2][1] or f[1][0] == f[1][1] == f[1][2]):
- winner = f[1][1]
- elif(f[0][2] == f[1][2] == f[2][2] or f[2][0] == f[2][1] == f[2][2]):
- winner = f[2][2]
- elif(f[0][0] == f[1][1] == f[2][2] or f[0][2] == f[1][1] == f[2][0]):
- winner = f[1][1]
- else:
- winner = nichts
- return winner
- def player1():
- ar = []
- while(len(ar) != 2):
- s = input('Spieler 1 (X) >> Geben Sie X & Y Koordinate Ihres Punktes in dieser "X,Y" Form an: ')
- ar = s.split(',')
- if(len(ar) != 2):
- print('Spieler 1 (X) >> Fehler: Falsche Eingabe!')
- shouldBreak = False
- if(istIntInSpielfeld(ar[0]) == False):
- print('Spieler 1 (X) >> Der Wert "' + ar[0] + '" ist keine Ganzzahl zwischen 1 & 3!')
- shouldBreak = True
- if(istIntInSpielfeld(ar[1]) == False):
- print('Spieler 1 (X) >> Der Wert "' + ar[1] + '" ist keine Ganzzahl zwischen 1 & 3!')
- shouldBreak = True
- if(shouldBreak):
- player1()
- return
- x = int(ar[0])
- y = int(ar[1])
- if(field[y-1][x-1] != nichts):
- print('Spieler 1 (X) >> Das Feld "(' + str(x) + '|' + str(y) + ')" ist belegt!')
- player1()
- return
- setzen(kreuz, x, y)
- def player2():
- ar = []
- while(len(ar) != 2):
- s = input('Spieler 2 (O) >> Geben Sie X & Y Koordinate Ihres Punktes in dieser "X,Y" Form an: ')
- ar = s.split(',')
- if(len(ar) != 2):
- print('Spieler 2 (O) >> Fehler: Falsche Eingabe!')
- shouldBreak = False
- if(istIntInSpielfeld(ar[0]) == False):
- print('Spieler 2 (O) >> Der Wert "' + ar[0] + '" ist keine Ganzzahl zwischen 1 & 3!')
- shouldBreak = True
- if(istIntInSpielfeld(ar[1]) == False):
- print('Spieler 2 (O) >> Der Wert "' + ar[1] + '" ist keine Ganzzahl zwischen 1 & 3!')
- shouldBreak = True
- if(shouldBreak):
- player2()
- return
- x = int(ar[0])
- y = int(ar[1])
- if(field[y-1][x-1] != nichts):
- print('Spieler 2 (O) >> Das Feld "(' + str(x) + '|' + str(y) + ')" ist belegt!')
- player2()
- return
- setzen(kreis, x, y)
- while(tryWinner(field) == False):
- print(getFieldString(field))
- player1()
- if(tryWinner(field) == True):
- break
- print(getFieldString(field))
- player2()
- print(getFieldString(field))
- print('Herzlichen Glückwunsch, ' + nkk[tryWinner(field)] + ' Du hast gewonnen!')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement