Tic Tac Toe

 Nem grafikus, de nagyon tanulságos program kezdőknek. 

A játékos kezd, de nem tudja legyőzni a gépet!


class TicTacToe:
"""Játék személy kezdéssel"""
def __init__(self, szamlista):
self.szamlista = szamlista
self.szam = str
self.uj_tabla(szamlista)
self.lepes_szam = 0
self.kettes_alas = False
self.gyozelem = False
self.benne = False

self.red = self.piros('G')
self.zold = self.zold('J')
self.sarga = '\x1b[33m'

@staticmethod
def piros(betu):
return f"\033[0;40m\033[1;91m{betu}\033[00m"

@staticmethod
def zold(betu):
# sárga!
return f"\033[0;40m\033[1;93m{betu}\033[00m"

@staticmethod
def lila(szoveg):
print(f"\033[0;35m{szoveg}\033[00m")

@staticmethod
# A játéktábla kiíratása.
def uj_tabla(szamlista):
for index, elem in enumerate(szamlista, start=1):
print(elem, end=' ' if index % 3 else '\n')

def input_bevitel(self):
while True:
print(self.sarga)
self.szam = input("\n\tKérek egy számot "
"ahová a jelet teszed! \n")
print("\033[0m")

# Benne van e a listában az a szám amit a játékos megadott.
self.benne = self.szam in self.szamlista

# Ellenőrzés
if self.benne is True:
break
else:
print("Hibás számot adtál meg! "
"Valószínű foglalt vagy nem használható.")

def szemely_szama(self):
self.lepes_szam += 1
print("\n Játékos", self.lepes_szam, "lépése:", )

# Végrehajtja a behelyettesítést, szám helyébe = X
for index, elem in enumerate(self.szamlista):
if elem == self.szam:
self.szamlista[index] = self.zold
self.uj_tabla(self.szamlista)

def gep_valasz1(self):
print("\n Számítógép", self.lepes_szam, "válaszlépése:")
if self.szamlista[4] == '5':
self.szamlista[4] = self.red
self.uj_tabla(self.szamlista)
else:
self.szamlista[0] = self.red
self.uj_tabla(self.szamlista)

def gep_valasz2(self):
"""A gép második válasza, jele ha a középső 5
számra került, vagy az 1 számra."""
print("\n Számítógép", self.lepes_szam, "válaszlépése:")

# A játékos kettes állásainak a blokkolása.
if self.szamlista[4] == self.red:
"""X=(1-szám, 0-index)"""
if (self.szamlista[0] == self.zold and
self.szamlista[1] == self.zold):
self.szamlista[2] = self.red
if (self.szamlista[0] == self.zold and
self.szamlista[2] == self.zold):
self.szamlista[1] = self.red
if (self.szamlista[0] == self.zold and
self.szamlista[3] == self.zold):
self.szamlista[6] = self.red
if (self.szamlista[0] == self.zold and
self.szamlista[6] == self.zold):
self.szamlista[3] = self.red
if (self.szamlista[0] == self.zold and
self.szamlista[7] == self.zold):
self.szamlista[5] = self.red
if (self.szamlista[0] == self.zold and
self.szamlista[5] == self.zold):
self.szamlista[7] = self.red
if (self.szamlista[0] == self.zold and
self.szamlista[8] == self.zold):
self.szamlista[5] = self.red
"""X=(2-szám, 1-index)"""
if (self.szamlista[1] == self.zold and
self.szamlista[2] == self.zold):
self.szamlista[0] = self.red
if (self.szamlista[1] == self.zold and
self.szamlista[3] == self.zold):
self.szamlista[0] = self.red
if (self.szamlista[1] == self.zold and
self.szamlista[6] == self.zold):
self.szamlista[0] = self.red
if (self.szamlista[1] == self.zold and
self.szamlista[7] == self.zold):
self.szamlista[5] = self.red
if (self.szamlista[1] == self.zold and
self.szamlista[8] == self.zold):
self.szamlista[2] = self.red
if (self.szamlista[1] == self.zold and
self.szamlista[5] == self.zold):
self.szamlista[2] = self.red
"""X=(3-szám, 2-index)"""
if (self.szamlista[2] == self.zold and
self.szamlista[3] == self.zold):
self.szamlista[0] = self.red
if (self.szamlista[2] == self.zold and
self.szamlista[5] == self.zold):
self.szamlista[8] = self.red
if (self.szamlista[2] == self.zold and
self.szamlista[6] == self.zold):
self.szamlista[1] = self.red
if (self.szamlista[2] == self.zold and
self.szamlista[7] == self.zold):
self.szamlista[5] = self.red
if (self.szamlista[2] == self.zold and
self.szamlista[8] == self.zold):
self.szamlista[5] = self.red
"""X=(4-szám, 3-index)"""
if (self.szamlista[3] == self.zold and
self.szamlista[5] == self.zold):
self.szamlista[1] = self.red
if (self.szamlista[3] == self.zold and
self.szamlista[6] == self.zold):
self.szamlista[0] = self.red
if (self.szamlista[3] == self.zold and
self.szamlista[7] == self.zold):
self.szamlista[0] = self.red
if (self.szamlista[3] == self.zold and
self.szamlista[8] == self.zold):
self.szamlista[7] = self.red
"""X=(6-szám, 5-index)"""
if (self.szamlista[5] == self.zold and
self.szamlista[6] == self.zold):
self.szamlista[8] = self.red
if (self.szamlista[5] == self.zold and
self.szamlista[7] == self.zold):
self.szamlista[8] = self.red
if (self.szamlista[5] == self.zold and
self.szamlista[8] == self.zold):
self.szamlista[2] = self.red
"""X=(7-szám, 6-index)"""
if (self.szamlista[6] == self.zold and
self.szamlista[7] == self.zold):
self.szamlista[8] = self.red
if (self.szamlista[6] == self.zold and
self.szamlista[8] == self.zold):
self.szamlista[7] = self.red
"""X=(8-szám, 7-index)"""
if (self.szamlista[7] == self.zold and
self.szamlista[8] == self.zold):
self.szamlista[6] = self.red
self.uj_tabla(self.szamlista)

elif self.szamlista[0] == self.red:
"""X=(4-szám, 3-index)"""
if (self.szamlista[4] == self.zold and
self.szamlista[1] == self.zold):
self.szamlista[7] = self.red
if (self.szamlista[4] == self.zold and
self.szamlista[2] == self.zold):
self.szamlista[6] = self.red
if (self.szamlista[4] == self.zold and
self.szamlista[3] == self.zold):
self.szamlista[5] = self.red
if (self.szamlista[4] == self.zold and
self.szamlista[5] == self.zold):
self.szamlista[3] = self.red
if (self.szamlista[4] == self.zold and
self.szamlista[6] == self.zold):
self.szamlista[2] = self.red
if (self.szamlista[4] == self.zold and
self.szamlista[7] == self.zold):
self.szamlista[1] = self.red
if (self.szamlista[4] == self.zold and
self.szamlista[8] == self.zold):
self.szamlista[2] = self.red

self.uj_tabla(self.szamlista)

def kiertekelo(self):
""" A győzelem kijelentése bármelyik három egy forma
jelnél. Ha nincs győztes a False
döntetlent ír ki. A return leállítja vagy tovább engedi
a futási ciklust."""
# Ha a játékosnak van egy vonalon hármasa.
if (self.szamlista[0] == self.zold
and self.szamlista[1] == self.zold and
self.szamlista[2] == self.zold) \
or (self.szamlista[3] == self.zold
and self.szamlista[4] == self.zold
and self.szamlista[5] == self.zold)\
or (self.szamlista[6] == self.zold
and self.szamlista[7] == self.zold
and self.szamlista[8] == self.zold)\
or (self.szamlista[0] == self.zold
and self.szamlista[3] == self.zold
and self.szamlista[6] == self.zold)\
or (self.szamlista[1] == self.zold
and self.szamlista[4] == self.zold
and self.szamlista[7] == self.zold)\
or (self.szamlista[2] == self.zold
and self.szamlista[5] == self.zold
and self.szamlista[8] == self.zold)\
or (self.szamlista[0] == self.zold
and self.szamlista[4] == self.zold
and self.szamlista[8] == self.zold)\
or (self.szamlista[2] == self.zold
and self.szamlista[4] == self.zold
and self.szamlista[6] == self.zold):

self.lila("\nJátékos győzelem!")
self.gyozelem = True
return True

# Ha a gépnek van egy vonalon három egyforma.
elif (self.szamlista[0] == self.red
and self.szamlista[1] == self.red
and self.szamlista[2] == self.red) \
or (self.szamlista[3] == self.red
and self.szamlista[4] == self.red
and self.szamlista[5] == self.red)\
or (self.szamlista[6] == self.red
and self.szamlista[7] == self.red
and self.szamlista[8] == self.red)\
or (self.szamlista[0] == self.red
and self.szamlista[3] == self.red
and self.szamlista[6] == self.red)\
or (self.szamlista[1] == self.red
and self.szamlista[4] == self.red
and self.szamlista[7] == self.red)\
or (self.szamlista[2] == self.red
and self.szamlista[5] == self.red
and self.szamlista[8] == self.red)\
or (self.szamlista[0] == self.red
and self.szamlista[4] == self.red
and self.szamlista[8] == self.red)\
or (self.szamlista[2] == self.red
and self.szamlista[4] == self.red
and self.szamlista[6] == self.red):

self.lila("\n A gép győzött!")
self.gyozelem = True
return True

if self.gyozelem is False and self.lepes_szam == 5:
self.lila("\n Vége, döntetlen.")
return True

def gep_valasz3(self):
"""Vizsgálat, hogy van e két egyforma karakter
a sorokban, átlókban és függőlegesen."""
print("\n Számítógép", self.lepes_szam, "válaszlépése:")
# A 0 indexű, az '1' hely vizsgálata,
# hogy kiegészthető e 3 egyformára.
if (self.szamlista[1] == self.red
and self.szamlista[2] == self.red
and self.szamlista[0] == '1') \
or (self.szamlista[3] == self.red
and self.szamlista[6] == self.red
and self.szamlista[0] == '1') \
or (self.szamlista[4] == self.red
and self.szamlista[8] == self.red
and self.szamlista[0] == '1'):
self.szamlista[0] = self.red
self.kettes_alas = True

# Az 1 indexű, a '2' hely vizsgálata,
# hogy kiegészthető e 3 egyformára.
elif (self.szamlista[0] == self.red
and self.szamlista[2] == self.red
and self.szamlista[1] == '2') \
or (self.szamlista[4] == self.red
and self.szamlista[7] == self.red
and self.szamlista[1] == '2'):
self.szamlista[1] = self.red
self.kettes_alas = True

# A 2 indexű, a '3' hely vizsgálata,
# hogy kiegészthető e 3 egyformára.
elif (self.szamlista[0] == self.red
and self.szamlista[1] == self.red
and self.szamlista[2] == '3') \
or (self.szamlista[5] == self.red
and self.szamlista[8] == self.red
and self.szamlista[2] == '3') \
or (self.szamlista[4] == self.red
and self.szamlista[6] == self.red
and self.szamlista[2] == '3'):
self.szamlista[2] = self.red
self.kettes_alas = True

# A 3 indexű, a '4' hely vizsgálata,
# hogy kiegészíthető e 3 egyformára.
elif (self.szamlista[4] == self.red
and self.szamlista[5] == self.red
and self.szamlista[3] == '4') \
or (self.szamlista[0] == self.red
and self.szamlista[6] == self.red
and self.szamlista[3] == '4'):
self.szamlista[3] = self.red
self.kettes_alas = True

# A 4 indexű, a '5' hely vizsgálata,
# hogy kiegészíthető e 3 egyformára.
elif (self.szamlista[3] == self.red
and self.szamlista[5] == self.red
and self.szamlista[4] == '5') \
or (self.szamlista[1] == self.red
and self.szamlista[7] == self.red
and self.szamlista[4] == '5')\
or (self.szamlista[0] == self.red
and self.szamlista[8] == self.red
and self.szamlista[4] == '5')\
or (self.szamlista[2] == self.red
and self.szamlista[6] == self.red
and self.szamlista[4] == '5'):
self.szamlista[4] = self.red
self.kettes_alas = True

# A 5 indexű, a '6' hely vizsgálata,
# hogy kiegészíthető e 3 egyformára.
elif (self.szamlista[2] == self.red
and self.szamlista[8] == self.red
and self.szamlista[5] == '6') \
or (self.szamlista[3] == self.red
and self.szamlista[4] == self.red
and self.szamlista[5] == '6'):
self.szamlista[5] = self.red
self.kettes_alas = True

# A 6 indexű, a '7' hely vizsgálata,
# hogy kiegészthető e 3 egyformára.
elif (self.szamlista[0] == self.red
and self.szamlista[3] == self.red
and self.szamlista[6] == '7') \
or (self.szamlista[7] == self.red
and self.szamlista[8] == self.red
and self.szamlista[6] == '7') \
or (self.szamlista[4] == self.red
and self.szamlista[2] == self.red
and self.szamlista[6] == '7'):
self.szamlista[6] = self.red
self.kettes_alas = True

# A 7 indexű, a '8' hely vizsgálata,
# hogy kiegészíthető e 3 egyformára.
elif (self.szamlista[6] == self.red
and self.szamlista[8] == self.red
and self.szamlista[7] == '8') \
or (self.szamlista[1] == self.red
and self.szamlista[4] == self.red
and self.szamlista[7] == '8'):
self.szamlista[7] = self.red
self.kettes_alas = True

# A 8 indexű, a '9' hely vizsgálata,
# hogy kiegészthető e 3 egyformára.
elif (self.szamlista[6] == self.red
and self.szamlista[7] == self.red
and self.szamlista[8] == '9') \
or (self.szamlista[2] == self.red
and self.szamlista[5] == self.red
and self.szamlista[8] == '9') \
or (self.szamlista[0] == self.red
and self.szamlista[4] == self.red
and self.szamlista[8] == '9'):
self.szamlista[8] = self.red
self.kettes_alas = True

# Vizsgálat az ellenfél állása szempontjából.
# A 0 indexű, az '1' hely vizsgálata,
# hogy BLOKKOLHATÓ e a 3 egyforma.
elif (self.szamlista[1] == self.zold
and self.szamlista[2] == self.zold
and self.szamlista[0] == '1') \
or (self.szamlista[3] == self.zold
and self.szamlista[6] == self.zold
and self.szamlista[0] == '1') \
or (self.szamlista[4] == self.zold
and self.szamlista[8] == self.zold
and self.szamlista[0] == '1'):
self.szamlista[0] = self.red
self.kettes_alas = True

# Az 1 indexű, a '2' hely vizsgálata,
# hogy BLOKKOLHATÓ e a 3 egyforma.
elif (self.szamlista[0] == self.zold
and self.szamlista[2] == self.zold
and self.szamlista[1] == '2') \
or (self.szamlista[4] == self.zold
and self.szamlista[7] == self.zold
and self.szamlista[1] == '2'):
self.szamlista[1] = self.red
self.kettes_alas = True

# A 2 indexű, a '3' hely vizsgálata,
# hogy BLOKKOLHATÓ e a 3 egyforma.
elif (self.szamlista[0] == self.zold
and self.szamlista[1] == self.zold
and self.szamlista[2] == '3') \
or (self.szamlista[5] == self.zold
and self.szamlista[8] == self.zold
and self.szamlista[2] == '3') \
or (self.szamlista[4] == self.zold
and self.szamlista[6] == self.zold
and self.szamlista[2] == '3'):
self.szamlista[2] = self.red
self.kettes_alas = True

# A 3 indexű, a '4' hely vizsgálata,
# hogy BLOKKOLHATÓ e a 3 egyforma.
elif (self.szamlista[4] == self.zold
and self.szamlista[5] == self.zold
and self.szamlista[3] == '4') \
or (self.szamlista[0] == self.zold
and self.szamlista[6] == self.zold
and self.szamlista[3] == '4'):
self.szamlista[3] = self.red
self.kettes_alas = True

# A 4 indexű, a '5' hely vizsgálata,
# hogy BLOKKOLHATÓ e a 3 egyforma.
elif (self.szamlista[3] == self.zold
and self.szamlista[5] == self.zold
and self.szamlista[4] == '5') \
or (self.szamlista[1] == self.zold
and self.szamlista[7] == self.zold
and self.szamlista[4] == '5') \
or (self.szamlista[0] == self.zold
and self.szamlista[8] == self.zold
and self.szamlista[4] == '5') \
or (self.szamlista[2] == self.zold
and self.szamlista[6] == self.zold
and self.szamlista[4] == '5'):
self.szamlista[4] = self.red
self.kettes_alas = True

# A 5 indexű, a '6' hely vizsgálata,
# hogy BLOKKOLHATÓ e a 3 egyforma.
elif (self.szamlista[2] == self.zold
and self.szamlista[8] == self.zold
and self.szamlista[5] == '6') \
or (self.szamlista[3] == self.zold
and self.szamlista[4] == self.zold
and self.szamlista[5] == '6'):
self.szamlista[5] = self.red
self.kettes_alas = True

# A 6 indexű, a '7' hely vizsgálata,
# hogy BLOKKOLHATÓ e a 3 egyforma.
elif (self.szamlista[0] == self.zold
and self.szamlista[3] == self.zold
and self.szamlista[6] == '7') \
or (self.szamlista[7] == self.zold
and self.szamlista[8] == self.zold
and self.szamlista[6] == '7') \
or (self.szamlista[4] == self.zold
and self.szamlista[2] == self.zold
and self.szamlista[6] == '7'):
self.szamlista[6] = self.red
self.kettes_alas = True

# A 7 indexű, a '8' hely vizsgálata,
# hogy BLOKKOLHATÓ e a 3 egyforma.
elif (self.szamlista[6] == self.zold
and self.szamlista[8] == self.zold
and self.szamlista[7] == '8') \
or (self.szamlista[1] == self.zold
and self.szamlista[4] == self.zold
and self.szamlista[7] == '8'):
self.szamlista[7] = self.red
self.kettes_alas = True

# A 8 indexű, a '9' hely vizsgálata,
# hogy BLOKKOLHATÓ e a 3 egyforma.
elif (self.szamlista[6] == self.zold
and self.szamlista[7] == self.zold
and self.szamlista[8] == '9') \
or (self.szamlista[2] == self.zold
and self.szamlista[5] == self.zold
and self.szamlista[8] == '9') \
or (self.szamlista[0] == self.zold
and self.szamlista[4] == self.zold
and self.szamlista[8] == '9'):
self.szamlista[8] = self.red
self.kettes_alas = True

# Ha a fenti kettes felételek nem állnak akkor,
# egy üres hely elfoglalása.
elif self.kettes_alas is False:
indexal = 0
szamol = 1
while True:
if self.szamlista[indexal] == str(szamol):
self.szamlista[indexal] = self.red
break
indexal += 1
szamol += 1

self.uj_tabla(self.szamlista)

def gep_valasz4(self):
"""Vizsgálat, hogy van e két egyforma karakter a
sorokban, átlókban és függőlegesen."""
print("\n Számítógép", self.lepes_szam, "válaszlépése:")
# A 0 indexű, az '1' hely vizsgálata,
# hogy kiegészthető e 3 egyformára.
if (self.szamlista[1] == self.red
and self.szamlista[2] == self.red
and self.szamlista[0] == '1') \
or (self.szamlista[3] == self.red
and self.szamlista[6] == self.red
and self.szamlista[0] == '1') \
or (self.szamlista[4] == self.red
and self.szamlista[8] == self.red
and self.szamlista[0] == '1'):
self.szamlista[0] = self.red
self.kettes_alas = True

# Az 1 indexű, a '2' hely vizsgálata,
# hogy kiegészthető e 3 egyformára.
elif (self.szamlista[0] == self.red
and self.szamlista[2] == self.red
and self.szamlista[1] == '2') \
or (self.szamlista[4] == self.red
and self.szamlista[7] == self.red
and self.szamlista[1] == '2'):
self.szamlista[1] = self.red
self.kettes_alas = True

# A 2 indexű, a '3' hely vizsgálata,
# hogy kiegészthető e 3 egyformára.
elif (self.szamlista[0] == self.red
and self.szamlista[1] == self.red
and self.szamlista[2] == '3') \
or (self.szamlista[5] == self.red
and self.szamlista[8] == self.red
and self.szamlista[2] == '3') \
or (self.szamlista[4] == self.red
and self.szamlista[6] == self.red
and self.szamlista[2] == '3'):
self.szamlista[2] = self.red
self.kettes_alas = True

# A 3 indexű, a '4' hely vizsgálata,
# hogy kiegészíthető e 3 egyformára.
elif (self.szamlista[4] == self.red
and self.szamlista[5] == self.red
and self.szamlista[3] == '4') \
or (self.szamlista[0] == self.red
and self.szamlista[6] == self.red
and self.szamlista[3] == '4'):
self.szamlista[3] = self.red
self.kettes_alas = True

# A 4 indexű, a '5' hely vizsgálata,
# hogy kiegészíthető e 3 egyformára.
elif (self.szamlista[3] == self.red
and self.szamlista[5] == self.red
and self.szamlista[4] == '5') \
or (self.szamlista[1] == self.red
and self.szamlista[7] == self.red
and self.szamlista[4] == '5')\
or (self.szamlista[0] == self.red
and self.szamlista[8] == self.red
and self.szamlista[4] == '5')\
or (self.szamlista[2] == self.red
and self.szamlista[6] == self.red
and self.szamlista[4] == '5'):
self.szamlista[4] = self.red
self.kettes_alas = True

# A 5 indexű, a '6' hely vizsgálata,
# hogy kiegészíthető e 3 egyformára.
elif (self.szamlista[2] == self.red
and self.szamlista[8] == self.red
and self.szamlista[5] == '6') \
or (self.szamlista[3] == self.red
and self.szamlista[4] == self.red
and self.szamlista[5] == '6'):
self.szamlista[5] = self.red
self.kettes_alas = True

# A 6 indexű, a '7' hely vizsgálata,
# hogy kiegészthető e 3 egyformára.
elif (self.szamlista[0] == self.red
and self.szamlista[3] == self.red
and self.szamlista[6] == '7') \
or (self.szamlista[7] == self.red
and self.szamlista[8] == self.red
and self.szamlista[6] == '7') \
or (self.szamlista[4] == self.red
and self.szamlista[2] == self.red
and self.szamlista[6] == '7'):
self.szamlista[6] = self.red
self.kettes_alas = True

# A 7 indexű, a '8' hely vizsgálata,
# hogy kiegészíthető e 3 egyformára.
elif (self.szamlista[6] == self.red
and self.szamlista[8] == self.red
and self.szamlista[7] == '8') \
or (self.szamlista[1] == self.red
and self.szamlista[4] == self.red
and self.szamlista[7] == '8'):
self.szamlista[7] = self.red
self.kettes_alas = True

# A 8 indexű, a '9' hely vizsgálata,
# hogy kiegészthető e 3 egyformára.
elif (self.szamlista[6] == self.red
and self.szamlista[7] == self.red
and self.szamlista[8] == '9') \
or (self.szamlista[2] == self.red
and self.szamlista[5] == self.red
and self.szamlista[8] == '9') \
or (self.szamlista[0] == self.red
and self.szamlista[4] == self.red
and self.szamlista[8] == '9'):
self.szamlista[8] = self.red
self.kettes_alas = True

# Vizsgálat az ellenfél állása szempontjából.
# A 0 indexű, az '1' hely vizsgálata,
# hogy BLOKKOLHATÓ e a 3 egyforma.
elif (self.szamlista[1] == self.zold
and self.szamlista[2] == self.zold
and self.szamlista[0] == '1') \
or (self.szamlista[3] == self.zold
and self.szamlista[6] == self.zold
and self.szamlista[0] == '1') \
or (self.szamlista[4] == self.zold
and self.szamlista[8] == self.zold
and self.szamlista[0] == '1'):
self.szamlista[0] = self.red
self.kettes_alas = True

# Az 1 indexű, a '2' hely vizsgálata,
# hogy BLOKKOLHATÓ e a 3 egyforma.
elif (self.szamlista[0] == self.zold
and self.szamlista[2] == self.zold
and self.szamlista[1] == '2') \
or (self.szamlista[4] == self.zold
and self.szamlista[7] == self.zold
and self.szamlista[1] == '2'):
self.szamlista[1] = self.red
self.kettes_alas = True

# A 2 indexű, a '3' hely vizsgálata,
# hogy BLOKKOLHATÓ e a 3 egyforma.
elif (self.szamlista[0] == self.zold
and self.szamlista[1] == self.zold
and self.szamlista[2] == '3') \
or (self.szamlista[5] == self.zold
and self.szamlista[8] == self.zold
and self.szamlista[2] == '3') \
or (self.szamlista[4] == self.zold
and self.szamlista[6] == self.zold
and self.szamlista[2] == '3'):
self.szamlista[2] = self.red
self.kettes_alas = True

# A 3 indexű, a '4' hely vizsgálata,
# hogy BLOKKOLHATÓ e a 3 egyforma.
elif (self.szamlista[4] == self.zold
and self.szamlista[5] == self.zold
and self.szamlista[3] == '4') \
or (self.szamlista[0] == self.zold
and self.szamlista[6] == self.zold
and self.szamlista[3] == '4'):
self.szamlista[3] = self.red
self.kettes_alas = True

# A 4 indexű, a '5' hely vizsgálata,
# hogy BLOKKOLHATÓ e a 3 egyforma.
elif (self.szamlista[3] == self.zold
and self.szamlista[5] == self.zold
and self.szamlista[4] == '5') \
or (self.szamlista[1] == self.zold
and self.szamlista[7] == self.zold
and self.szamlista[4] == '5') \
or (self.szamlista[0] == self.zold
and self.szamlista[8] == self.zold
and self.szamlista[4] == '5') \
or (self.szamlista[2] == self.zold
and self.szamlista[6] == self.zold
and self.szamlista[4] == '5'):
self.szamlista[4] = self.red
self.kettes_alas = True

# A 5 indexű, a '6' hely vizsgálata,
# hogy BLOKKOLHATÓ e a 3 egyforma.
elif (self.szamlista[2] == self.zold
and self.szamlista[8] == self.zold
and self.szamlista[5] == '6') \
or (self.szamlista[3] == self.zold
and self.szamlista[4] == self.zold
and self.szamlista[5] == '6'):
self.szamlista[5] = self.red
self.kettes_alas = True

# A 6 indexű, a '7' hely vizsgálata,
# hogy BLOKKOLHATÓ e a 3 egyforma.
elif (self.szamlista[0] == self.zold
and self.szamlista[3] == self.zold
and self.szamlista[6] == '7') \
or (self.szamlista[7] == self.zold
and self.szamlista[8] == self.zold
and self.szamlista[6] == '7') \
or (self.szamlista[4] == self.zold
and self.szamlista[2] == self.zold
and self.szamlista[6] == '7'):
self.szamlista[6] = self.red
self.kettes_alas = True

# A 7 indexű, a '8' hely vizsgálata,
# hogy BLOKKOLHATÓ e a 3 egyforma.
elif (self.szamlista[6] == self.zold
and self.szamlista[8] == self.zold
and self.szamlista[7] == '8') \
or (self.szamlista[1] == self.zold
and self.szamlista[4] == self.zold
and self.szamlista[7] == '8'):
self.szamlista[7] = self.red
self.kettes_alas = True

# A 8 indexű, a '9' hely vizsgálata,
# hogy BLOKKOLHATÓ e a 3 egyforma.
elif (self.szamlista[6] == self.zold
and self.szamlista[7] == self.zold
and self.szamlista[8] == '9') \
or (self.szamlista[2] == self.zold
and self.szamlista[5] == self.zold
and self.szamlista[8] == '9') \
or (self.szamlista[0] == self.zold
and self.szamlista[4] == self.zold
and self.szamlista[8] == '9'):
self.szamlista[8] = self.red
self.kettes_alas = True

# Ha a fenti kettes felételek nem állnak akkor,
# egy üres hely elfoglalása.
elif self.kettes_alas is True:
indexal = 0
szamol = 1
while True:
if self.szamlista[indexal] == str(szamol):
self.szamlista[indexal] = self.red
break
indexal += 1
szamol += 1

self.uj_tabla(self.szamlista)


def main():
kek = '\x1b[36m'
nocolor = "\033[0m"

list_int = list(range(1, 10))
list_string = list(map(str, list_int))

print(kek, f'\n\t\t\tTIC-TAC-TOE JÁTÉK.'
f'\n\t\t\tJÁTÉKOS vs PROGRAM.\n'
f'\n\tAki vizszintesen, függőlegesen vagy átlósan'
f'\n\thárom saját jelet helyez el, az győz!\n'
f'\n\t\t\tA játékos kezd, jele: J. '
f'\n\t\t\tSzámítógép: G.'
f'\n\n\rKezdő tábla:', nocolor)

jatek = TicTacToe(list_string)

while True:
# Első forduló
jatek.input_bevitel()
jatek.szemely_szama()
jatek.gep_valasz1()

# Második forduló
jatek.input_bevitel()
jatek.szemely_szama()
jatek.gep_valasz2()

# Harmadik forduló
jatek.input_bevitel()
jatek.szemely_szama()
leallito = jatek.kiertekelo()
if leallito is True:
break
jatek.gep_valasz3()
leallito = jatek.kiertekelo()
if leallito is True:
break

# Negyedik forduló
jatek.input_bevitel()
jatek.szemely_szama()
leallito = jatek.kiertekelo()
if leallito is True:
break
jatek.gep_valasz4()
leallito = jatek.kiertekelo()
if leallito is True:
break

# Ötödik, játékos befejező lépése.
jatek.input_bevitel()
jatek.szemely_szama()
leallito = jatek.kiertekelo()
if leallito is True:
break

folytat = input("\n Folytatás? (I/N) \n ")
if folytat == "I" or folytat == "i":
main()


if __name__ == "__main__":
main()

Nincsenek megjegyzések:

Megjegyzés küldése