我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么用Python+Tkinter实现经典井字棋小游戏

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么用Python+Tkinter实现经典井字棋小游戏

这篇文章主要讲解了“怎么用Python+Tkinter实现经典井字棋小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python+Tkinter实现经典井字棋小游戏”吧!

    演示

    怎么用Python+Tkinter实现经典井字棋小游戏

    介绍

    首先来介绍一下GUI库Tkinter

    怎么用Python+Tkinter实现经典井字棋小游戏

    主要模块:

    tkinterMain Tkinter module.

    tkinter.colorchooser 让用户选择颜色的对话框。

    tkinter.commondialog 本文其他模块定义的对话框的基类。

    tkinter.filedialog 允许用户指定文件的通用对话框,用于打开或保存文件。

    tkinter.font 帮助操作字体的工具。

    tkinter.messagebox 访问标准的 Tk 对话框。

    tkinter.scrolledtext 内置纵向滚动条的文本组件。

    tkinter.simpledialog 基础对话框和一些便捷功能。

    tkinter.ttkThemed widget set introduced in Tk 8.5, providing modern alternatives for many of the classic widgets in the main tkinter module.

    一个小demo大家熟悉一下

    from tkinter import *from tkinter import ttkroot = Tk()frm = ttk.Frame(root, padding=10)frm.grid()ttk.Label(frm, text="Hello World!").grid(column=0, row=0)ttk.Button(frm, text="Quit", command=root.destroy).grid(column=1, row=0)root.mainloop()

    官方文档

    我说的再好也不如去看看文档,有什么不明白的可以下方留言。嘿嘿嘿传送门

    tkinter.messagebox

    这部分其实我就是直接拿来用了没怎么了解,我把经常用的给大家说说

    怎么用Python+Tkinter实现经典井字棋小游戏

    class tkinter.messagebox.Message(master=None, **options)创建一个默认信息消息框。信息消息框tkinter.messagebox.showinfo(title=None, message=None, **options)警告消息框tkinter.messagebox.showwarning(title=None, message=None, **options)tkinter.messagebox.showerror(title=None, message=None, **options)疑问消息框tkinter.messagebox.askquestion(title=None, message=None, **options)tkinter.messagebox.askokcancel(title=None, message=None, **options)tkinter.messagebox.askretrycancel(title=None, message=None, **options)tkinter.messagebox.askyesno(title=None, message=None, **options)tkinter.messagebox.askyesnocancel(title=None, message=None, **options)

    源码

    怎么用Python+Tkinter实现经典井字棋小游戏

    from tkinter import *import tkinter.messagebox as msgroot = Tk()root.title('TIC-TAC-TOE---Project Gurukul')# labelsLabel(root, text="player1 : X", font="times 15").grid(row=0, column=1)Label(root, text="player2 : O", font="times 15").grid(row=0, column=2)digits = [1, 2, 3, 4, 5, 6, 7, 8, 9]# for player1 sign = X and for player2 sign= Ymark = ''# counting the no. of clickcount = 0panels = ["panel"] * 10def win(panels, sign):    return ((panels[1] == panels[2] == panels[3] == sign)            or (panels[1] == panels[4] == panels[7] == sign)            or (panels[1] == panels[5] == panels[9] == sign)            or (panels[2] == panels[5] == panels[8] == sign)            or (panels[3] == panels[6] == panels[9] == sign)            or (panels[3] == panels[5] == panels[7] == sign)            or (panels[4] == panels[5] == panels[6] == sign)            or (panels[7] == panels[8] == panels[9] == sign))def checker(digit):    # 检查按键    if digit == 1 and digit in digits:        digits.remove(digit)        ##player1 will play if the value of count is even and for odd player2 will play        if count % 2 == 0:            mark = 'X'            panels[digit] = mark        elif count % 2 != 0:            mark = 'O'            panels[digit] = mark        button1.config(text=mark)        count = count + 1        sign = mark        if (win(panels, sign) and sign == 'X'):            msg.showinfo("Result", "Player1 wins")            root.destroy()        elif (win(panels, sign) and sign == 'O'):            msg.showinfo("Result", "Player2 wins")            root.destroy()    if digit == 2 and digit in digits:        digits.remove(digit)        if count % 2 == 0:            mark = 'X'            panels[digit] = mark        elif count % 2 != 0:            mark = 'O'            panels[digit] = mark        button2.config(text=mark)        count = count + 1        sign = mark        if (win(panels, sign) and sign == 'X'):            msg.showinfo("Result", "Player1 wins")            root.destroy()        elif (win(panels, sign) and sign == 'O'):            msg.showinfo("Result", "Player2 wins")            root.destroy()    if digit == 3 and digit in digits:        digits.remove(digit)        if count % 2 == 0:            mark = 'X'            panels[digit] = mark        elif count % 2 != 0:            mark = 'O'            panels[digit] = mark        button3.config(text=mark)        count = count + 1        sign = mark        if (win(panels, sign) and sign == 'X'):            msg.showinfo("Result", "Player1 wins")            root.destroy()        elif (win(panels, sign) and sign == 'O'):            msg.showinfo("Result", "Player2 wins")            root.destroy()    if digit == 4 and digit in digits:        digits.remove(digit)        if count % 2 == 0:            mark = 'X'            panels[digit] = mark        elif count % 2 != 0:            mark = 'O'            panels[digit] = mark        button4.config(text=mark)        count = count + 1        sign = mark        if (win(panels, sign) and sign == 'X'):            msg.showinfo("Result", "Player1 wins")            root.destroy()        elif (win(panels, sign) and sign == 'O'):            msg.showinfo("Result", "Player2 wins")            root.destroy()    if digit == 5 and digit in digits:        digits.remove(digit)        if count % 2 == 0:            mark = 'X'            panels[digit] = mark        elif count % 2 != 0:            mark = 'O'            panels[digit] = mark        button5.config(text=mark)        count = count + 1        sign = mark        if (win(panels, sign) and sign == 'X'):            msg.showinfo("Result", "Player1 wins")            root.destroy()        elif (win(panels, sign) and sign == 'O'):            msg.showinfo("Result", "Player2 wins")            root.destroy()    if digit == 6 and digit in digits:        digits.remove(digit)        if count % 2 == 0:            mark = 'X'            panels[digit] = mark        elif count % 2 != 0:            mark = 'O'            panels[digit] = mark        button6.config(text=mark)        count = count + 1        sign = mark        if (win(panels, sign) and sign == 'X'):            msg.showinfo("Result", "Player1 wins")            root.destroy()        elif (win(panels, sign) and sign == 'O'):            msg.showinfo("Result", "Player2 wins")            root.destroy()    if digit == 7 and digit in digits:        digits.remove(digit)        if count % 2 == 0:            mark = 'X'            panels[digit] = mark        elif count % 2 != 0:            mark = 'O'            panels[digit] = mark        button7.config(text=mark)        count = count + 1        sign = mark        if (win(panels, sign) and sign == 'X'):            msg.showinfo("Result", "Player1 wins")            root.destroy()        elif (win(panels, sign) and sign == 'O'):            msg.showinfo("Result", "Player2 wins")            root.destroy()    if digit == 8 and digit in digits:        digits.remove(digit)        if count % 2 == 0:            mark = 'X'            panels[digit] = mark        elif count % 2 != 0:            mark = 'O'            panels[digit] = mark        button8.config(text=mark)        count = count + 1        sign = mark        if (win(panels, sign) and sign == 'X'):            msg.showinfo("Result", "Player1 wins")            root.destroy()        elif (win(panels, sign) and sign == 'O'):            msg.showinfo("Result", "Player2 wins")            root.destroy()    if digit == 9 and digit in digits:        digits.remove(digit)        if count % 2 == 0:            mark = 'X'            panels[digit] = mark        elif count % 2 != 0:            mark = 'O'            panels[digit] = mark        button9.config(text=mark)        count = count + 1        sign = mark        if (win(panels, sign) and sign == 'X'):            msg.showinfo("Result", "Player1 wins")            root.destroy()        elif (win(panels, sign) and sign == 'O'):            msg.showinfo("Result", "Player2 wins")            root.destroy()    ###if count is greater then 8 then the match has been tied    if (count > 8 and win(panels, 'X') == False and win(panels, 'O') == False):        msg.showinfo("Result", "Match Tied")        root.destroy()####定义每个格子button1 = Button(root, width=15, font=('Times 16 bold'), height=7, command=lambda: checker(1))button1.grid(row=1, column=1)button2 = Button(root, width=15, height=7, font=('Times 16 bold'), command=lambda: checker(2))button2.grid(row=1, column=2)button3 = Button(root, width=15, height=7, font=('Times 16 bold'), command=lambda: checker(3))button3.grid(row=1, column=3)button4 = Button(root, width=15, height=7, font=('Times 16 bold'), command=lambda: checker(4))button4.grid(row=2, column=1)button5 = Button(root, width=15, height=7, font=('Times 16 bold'), command=lambda: checker(5))button5.grid(row=2, column=2)button6 = Button(root, width=15, height=7, font=('Times 16 bold'), command=lambda: checker(6))button6.grid(row=2, column=3)button7 = Button(root, width=15, height=7, font=('Times 16 bold'), command=lambda: checker(7))button7.grid(row=3, column=1)button8 = Button(root, width=15, height=7, font=('Times 16 bold'), command=lambda: checker(8))button8.grid(row=3, column=2)button9 = Button(root, width=15, height=7, font=('Times 16 bold'), command=lambda: checker(9))button9.grid(row=3, column=3)

    感谢各位的阅读,以上就是“怎么用Python+Tkinter实现经典井字棋小游戏”的内容了,经过本文的学习后,相信大家对怎么用Python+Tkinter实现经典井字棋小游戏这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    怎么用Python+Tkinter实现经典井字棋小游戏

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    怎么用Python+Tkinter实现经典井字棋小游戏

    这篇文章主要讲解了“怎么用Python+Tkinter实现经典井字棋小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python+Tkinter实现经典井字棋小游戏”吧!演示介绍首
    2023-06-29

    C语言实现经典小游戏井字棋的示例代码

    这个三子棋游戏是在学习C语言的过程中自己编写的一个小游戏,现在将自己的思路(主要以流程图形式和代码中的注释表达)和具体代码以及运行结果分享出来以供大家学习参考,希望对大家有所帮助
    2022-11-13

    python怎么实现简单的井字棋小游戏

    这篇文章主要讲解了“python怎么实现简单的井字棋小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python怎么实现简单的井字棋小游戏”吧!窗口万能的窗口,实现窗口都可以进行简单的修
    2023-06-30

    怎么利用C语言实现井字棋小游戏

    本篇内容主要讲解“怎么利用C语言实现井字棋小游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么利用C语言实现井字棋小游戏”吧!推荐阅读顺序(不建议跳过)先看实现之后的界面 —— 然后看分析程
    2023-06-20

    使用python怎么实现一个井字棋游戏

    这篇文章将为大家详细讲解有关使用python怎么实现一个井字棋游戏,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。使用python实现井字棋游戏,没有具体算法,只是用随机下棋简单实现:impo
    2023-06-15

    python实现井字棋游戏的代码怎么写

    python实现井字棋游戏的代码怎么写,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。井字棋简介井字棋又称三子棋,英文名为Tic Tac Toe。具体玩法为在一个3x3的棋盘上,
    2023-06-25

    C语言怎么实现井字棋游戏

    今天就跟大家聊聊有关C语言怎么实现井字棋游戏,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。井字棋游戏要求在3乘3棋盘上,每行都相同或者每列都相同再或者对角线相同,则胜出.因此我们可以
    2023-06-25

    C#实现经典飞行棋游戏的脚本怎么写

    今天小编给大家分享一下C#实现经典飞行棋游戏的脚本怎么写的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。效果展示主函数
    2023-06-29

    怎么用Python设计一个经典小游戏

    本篇文章给大家分享的是有关怎么用Python设计一个经典小游戏,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。前言想不想在闲得无聊的时候,用自己学过的Python基础知识,来做一
    2023-06-02

    基于Python+Pygame怎么实现经典赛车游戏

    这篇文章主要介绍“基于Python+Pygame怎么实现经典赛车游戏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于Python+Pygame怎么实现经典赛车游戏”文章能帮助大家解决问题。一、环境
    2023-06-30

    怎么使用python+pygame实现简易五子棋小游戏

    本篇内容主要讲解“怎么使用python+pygame实现简易五子棋小游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用python+pygame实现简易五子棋小游戏”吧!tkinter库
    2023-07-05

    怎么用C语言实现扫雷经典游戏

    本篇内容介绍了“怎么用C语言实现扫雷经典游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C语言实现扫雷游戏,供大家参考,具体内容如下实现扫
    2023-06-20

    怎么用JAVA实现经典游戏坦克大战

    这篇文章主要介绍“怎么用JAVA实现经典游戏坦克大战”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用JAVA实现经典游戏坦克大战”文章能帮助大家解决问题。主要设计1、要有难度关卡:第一关,第二关
    2023-06-29

    怎么用C语言实现三子棋小游戏

    这篇文章主要介绍了怎么用C语言实现三子棋小游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用C语言实现三子棋小游戏文章都会有所收获,下面我们一起来看看吧。思想提升及重要代码片段为什么要拆成三个文件写:1.
    2023-06-30

    怎么使用C#代码实现经典扫雷游戏

    这篇文章主要介绍“怎么使用C#代码实现经典扫雷游戏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用C#代码实现经典扫雷游戏”文章能帮助大家解决问题。布局布局效果如下,下面每个“网格”都是一个按
    2023-07-05

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录