首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Tkinter Tic Tac Toe AI

Python Tkinter Tic Tac Toe AI
EN

Stack Overflow用户
提问于 2021-12-07 00:14:38
回答 1查看 296关注 0票数 -1

我试图使一个Tic脚趾在平地,但我遇到了一些问题,与人工智能系统。我想做的是,如果中间位置没有被占据,它就会选择它,如果不是,它会选择一个随机数,并列出它可以赢得的所有路线,以及玩家将使用的所有路线,但是它会阻止他们,但是我遇到了这个问题。我的代码:

代码语言:javascript
复制
def click1():
    if isTaken1 == False:
        Button1.config(text = "O")
        pTurn1 = True

Button1 = Button(root, command = click1)
Button1.config(width = "5", height = "3")
Button1.place(x = 100, y = 30)
#I have nine of these however I can't show them all as it will make this post very long

我试图添加它时,球员采取一个回合( pTurn变量),它将使人工智能行动,然而,我不知道在哪里放置人工智能代码。

我试着做这样的事情:

代码语言:javascript
复制
If isTaken5 == False: #Checking if the middle spot is taken
    Button5.config(text = "X") #Player is O and AI is X
else:
    AIChoice = random.randint(1,8)
    if AIChoice == 1:
        Button1.config(text = "X")

所以你知道了它的基本概念,但是我不知道把鳕鱼放在哪里,就好像语句放在你改变的地方之后,它不起作用一样。

EN

回答 1

Stack Overflow用户

发布于 2021-12-08 17:40:41

在一个基于回合的游戏中,你可以在用户开始回合后立即调用人工智能函数。例如,让我们从计算机的函数开始。这就是你的人工智能存在的地方

代码语言:javascript
复制
def computer_turn():
    <your logic to pick an empty square>

理想情况下,您还需要检查计算机选择最后一个位置的情况,但为了保持示例简单,我现在忽略了这一点。

接下来,我们有一个供玩家使用的功能。在本例中,它接受了被单击的行和列。这将选择被点击的按钮,检查游戏是否结束,如果游戏尚未结束,请调用computer_turn

看起来会是这样的:

代码语言:javascript
复制
def player_turn(row, column):        
    <your logic to select the given row and column>
    
    if not is_game_over():
        computer_turn()

这不是处理游戏逻辑的唯一方法。例如,您可以创建一个小的状态机。然而,对于像这样简单的游戏来说,这种基于转弯的系统已经足够好了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70253500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档