Untitled

 avatar
unknown
plain_text
2 years ago
2.1 kB
5
Indexable
from random import randint

unused_cell = [1, 2, 3, 4, 5, 6, 7, 8, 9]
play_ground = [['1', '2', '3'],
               ['4', '5', '6'],
               ['7', '8', '9']]

player = input("Вы хотите играть крестиком? Ответьте y/n")
if player == 'y':
    player = 'x'
    comp = 'o'
else:
    player = 'o'
    comp = 'x'
    turn = randint(0, 8)
    play_ground[turn//3][turn % 3] = 'x' #Первый ход компьютера
    unused_cell.remove(turn + 1)

#Игра продолжается пока не наступит чья-то победа, или ничья
def nobody_win():
    for line in play_ground:
        if line[0] == line[1] == line[2] != '.':
            print(line[0], "победили!")
            return False
    for i in range(3):
        if play_ground[0][i] == play_ground[1][i] == play_ground[2][i] != '.':
            print(play_ground[0][i], "победили!")
            return False

    if play_ground[0][0] == play_ground[1][1] == play_ground[2][2] != '.' or play_ground[0][2] == play_ground[1][1] == play_ground[2][0] != '.':
        print(play_ground[1][1], "победили!")
        return False

    if len(unused_cell) <= 0:
        print("Ничья, ходов нет!")
        return False
    return True


#Основной цикл игры
while nobody_win():
    #Отображение поля
    for line in play_ground:
        print(*line)

    #Ход игрока
    turn = int(input("На какую клетку будете ходить?"))
    while turn not in unused_cell:
        turn = int(input("На эту клетку сходить нельзя.\nНа какую клетку будете ходить?"))
    else:
        unused_cell.remove(turn)
        play_ground[(turn-1)//3][(turn-1) % 3] = player

    #Ход компьютера
    if len(unused_cell) >= 1:
        turn = unused_cell[randint(0, len(unused_cell) - 1)]
        unused_cell.remove(turn)
        play_ground[(turn-1)//3][(turn-1) % 3] = comp

for line in play_ground:
    print(*line)
Editor is loading...
Leave a Comment