Stepas6ka / Ster

0 stars 0 forks source link

tictac1.0.py #1

Open Stepas6ka opened 1 year ago

Stepas6ka commented 1 year ago

That is my end work on ''Python for beginners'' course A code for Python: everyone know this game...TIC-TAC-TOE!!! :3

Stepas6ka commented 1 year ago

import random def victory(cell,th):

Перевірка на перемогу

rowcol=((0,1,2),(3,4,5),(6,7,8),(0,3,6),(1,4,7),(2,5,8),(0,4,8),(2,4,6))
for i in rowcol:
    if cell[i[0]]==cell[i[1]]==cell[i[2]]==th:
        play_board(cell)
        return True
return False

def play_board(cell):

Поле для гри

print('-------------')
print(f'| {cell[0]} | {cell[1]} | {cell[2]} |')
print('-------------')
print(f'| {cell[3]} | {cell[4]} | {cell[5]} |')
print('-------------')
print(f'| {cell[6]} | {cell[7]} | {cell[8]} |')
print('-------------')

def rang(k):

Перевірка діапазону 0-8 введеного числа

if k.isdigit():
    if int(k) in range(9):
        return int(k)
    else:
        return(-1)
else:
    return(-1)

def test(k,cell):

Перевірка статусу клітинки: відсутність "о" чи "х"

if cell[k]!='x':
    if cell[k]!='o':
        return int(k)
    else:
        return -2
else:
    return -2

cell=[' ',' ',' ',' ',' ',' ',' ',' ',' '] free=[0,1,2,3,4,5,6,7,8] print("Привіт! Граємо в крестики-нулики) Чур я нулик. Введи цифру від 0 до 8 аби походити") gg=False while gg==False: play_board(cell) n=input("Ходи хутчіше: ") k=rang(n) if k!=-1: k=test(k,cell) while k==-1 or k==-2: n=input("Давай іншу цифру: ") k=rang(n) k=test(k,cell) cell[k]='x' gg=victory(cell,'x') if gg==True: print("Ти мене обіграв, майстер!") play_board(cell) break free.remove(k)

Перевірка на заповнення всіх клітинок(написав тільки для "х", бо за нами завжди останній хід перед повним запоненням)

if len(free)==0:
    print("Всі клітинки заповнені, давай заново?")
    play_board(cell)
    break
while True:
    k1=random.randint(0,8)
    if k1 in free:
        cell[k1]='o'
        free.remove(k1)
        break
gg=victory(cell,'o')
if gg==True:
    print("Ха! Я переміг! Давай ще)")
    play_board(cell)
    break