Как настроить ходы (человек против компьютера), играя в tictactoe на интерфейсе tkinter? - PullRequest
0 голосов
/ 11 апреля 2019

Я не знаю, как правильно настроить повороты. Основываясь на моем коде, движение компьютера должно быть вызвано щелчком игрока на доске. Я сделал это хорошо, человек против человека. Следующий код слишком урезан, но я думаю, что мы можем понять общую идею.

    from tkinter import *
    import random

    root = Tk()
    root.title("Tic Tac Toe")
    root.resizable(0, 0)

    board = [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ']

    def lucky_guess():
        #The computer moves randomly

    def check_winner():
        if board[0] == 'X' and board[1] == 'X' and board[2] == 'X':
            print("Player's won. Game over.")
            # sys.exit()
        # All successful combinations

    def set_movement(square, n):
        global turn
        if board[n] == " " and turn == 'X':
            square["text"] = "X"
            board[n] = "X"
            check_winner()
            messages.config(text="Computer's turn")
            turn = 'O'
        elif turn == 'O':
            lucky_guess()
            check_winner()
            messages.config(text="Player's turn")
            turn = 'X'
        print(board)

    # 9 tiles
    tile_6 = Button(root, text="6", bg='gray', fg='white', 
        height=4, width=8,command=lambda: set_movement(tile_6, 6))
    tile_6.grid(row=0, column=0)
    #Set turns
    choice = random.choice('XO')
    beginning = choice, "'s turn."
    messages.config(text=beginning)
    turn = choice
    root.mainloop()

1 Ответ

0 голосов
/ 11 апреля 2019

Во-первых, я бы предложил в конечном итоге перейти к тому, чтобы структура классов удерживала ваше игровое состояние, чтобы вы могли избежать необходимости в глобальных переменных ... но мы пока это отложим.

Во-вторых, приведенный код неполный и в нем отсутствуют некоторые важные переменные.

У вас должен быть способ или способ определить, настала ли очередь очередь человека или очередь компьютера.Этот метод следует вызывать, когда начинается игра (для управления вами или компьютером, работающим первым) и в конце каждого хода после переключения переменной хода.Если настала очередь компьютера ... тогда вызовите свой метод для выбора квадрата компьютера и заставьте компьютер двигаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...