Skip to content

Instantly share code, notes, and snippets.

@Liblor
Created March 25, 2016 19:49
Show Gist options
  • Save Liblor/0bd6d158579a2cd1d1f9 to your computer and use it in GitHub Desktop.
Save Liblor/0bd6d158579a2cd1d1f9 to your computer and use it in GitHub Desktop.
Ein konsolen Tic Tac Toe
#!/usr/bin/env python3
#
# -- German --
# Autor: Liblor
# Datum: 27.12.2011
# Lizenz: Creative Commons Attribution License
#
# Ein konsolen Tic Tac Toe
#
class TicTacToe(object):
def __init__(self, spieler1="Spieler1", spieler2="Spieler2"):
self._reset()
self.spieler1 = spieler1
self.spieler2 = spieler2
def _getspielfeld(self):
print ("Spielfeld: ")
for i in range(0, 9, 3):
print(self.spielfeld[i: (i+3)])
def start(self):
print("%s ist 'X'\n%s ist 'O'" % (spieler1, spieler2))
while self.run:
self._zug(self.spieler1)
if not self.run: break
self._zug(self.spieler2)
self._reset()
def _zug(self, spieler):
self.freieplaetze -= 1
print("\n%s ist am Zug!" % spieler)
self._getspielfeld()
while True:
z = int(input("An welcher Position moechten sie Spielen? "))
if str(z) in self.spielfeld:
self.spielfeld[z] = "X" if spieler == self.spieler1 else "O"
self.check(spieler)
break
elif z > 8 or z < 0:
print("Auserhalb des Feldes! ")
else:
print("Dieser Platz ist bereits vergeben. ")
def check(self, spieler):
XorO = ("X" if spieler == self.spieler1 else "O")
print()
if self.spielfeld[:3].count(XorO) == 3 or\
self.spielfeld[3:6].count(XorO) == 3 or\
self.spielfeld[6:9].count(XorO) == 3 or\
self.spielfeld[::3].count(XorO) == 3 or\
self.spielfeld[3::3].count(XorO) == 3 or\
self.spielfeld[6::3].count(XorO) == 3 or\
self.spielfeld[0::4].count(XorO) == 3 or\
self.spielfeld[2:7:2].count(XorO) == 3:
self._getspielfeld()
if XorO == "X":
print("%s hat Gewonnen!" % self.spieler1)
self.run = False
else:
print("%s hat Gewonnen!" % self.spieler2)
self.run = False
input("<Enter>")
elif not self.freieplaetze:
self.run = False
print("Unentschieden! ")
input("<Enter>")
def _reset(self):
self.spielfeld = [str(i) for i in range(9)]
self.freieplaetze = 9
self.run = True
if __name__ == "__main__":
spieler1 = input("Spieler1: ")
spieler2 = input("Spieler2: ")
run = TicTacToe(spieler1, spieler2)
run.start()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment