Python乌龟井字游戏

Python乌龟井字游戏,第1张

概述所以我是python的新手,我用与您对战的Ai编写了一个井字游戏.因此一切正常,但是我使用文本框通知Ai玩家选择了什么.现在,我想升级我的游戏,以便玩家可以单击要填充的框,而不是在文本框中键入它.所以我的想法是使用onscreenclick()但我遇到了一些问题. onscreenclick()返回在画布上单击的坐标,我想使用一个函数来确定播放器在哪个框中单

所以我是python的新手,我用与您对战的Ai编写了一个井字游戏.因此一切正常,但是我使用文本框通知Ai玩家选择了什么.现在,我想升级我的游戏,以便玩家可以单击要填充的框,而不是在文本框中键入它.所以我的想法是使用onscreenclick()但我遇到了一些问题. onscreenclick()返回在画布上单击的坐标,我想使用一个函数来确定播放器在哪个框中单击
我懂了:

from turtle import * def whichBox(x,y): #obvIoUsly i got 9 Boxes but this is just an example for Box 1    if x<-40 and x>-120:        if y>40 and y<120:            return 1        else:            return 0    else:        return 0Box=onscreenclick(whichBox)print(Box)

很明显,在这种情况下,我希望Box为0或1,但是Box的值为None.有谁知道如何解决这一问题?它必须对变量框进行某些 *** 作,因为如果我用print(“ 1”)替换return 1,它将起作用.我假设该变量被快速定义.我的第二个问题是,是否有可能暂停编程,直到玩家单击一个框,但更重要的是首先查看第一个问题.提前致谢:)最佳答案假设您已在turtle模块中命名了Screen(),则应将

screen.onscreenclick(whichBox)

代替:

onscreenclick(whichBox)

例:

from turtle import Turtle,Screenturtle = Turtle()screen = Screen()def ExampleFunction():    return 7screen.onscreenclick(ExampleFunction)

此外,当jasonharper说onscreenclick()函数无法返回任何值时,他是正确的.这样,您可以在函数whichBox()中包含一个打印函数,以便打印出一个值,例如:

def whichBox(x,y):     if x<-40 and x>-120:        if y>40 and y<120:            print(1)            return 1        else:            print(0)            return 0    else:        print(0)        return 0

或者,如果要将打印语句保留在whichBox()之外,则还可以执行以下 *** 作:

screen.onscreenclick(lambda x,y: print(whichBox(x,y)))

该函数创建一个lambda函数,该函数将onscreenclick()中的(x,y)赋给包含whichBox()的打印语句. 总结

以上是内存溢出为你收集整理的Python乌龟井字游戏 全部内容,希望文章能够帮你解决Python乌龟井字游戏 所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1199552.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存