iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >怎么用Python+Tkinter实现经典井字棋小游戏
  • 142
分享到

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

2023-06-29 12:06:39 142人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要讲解了“怎么用python+Tkinter实现经典井字棋小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用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实现经典井字棋小游戏这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

    --结束END--

    本文标题: 怎么用Python+Tkinter实现经典井字棋小游戏

    本文链接: https://www.lsjlt.com/news/324666.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

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

    下载Word文档
    猜你喜欢
    • Python+Tkinter实现经典井字棋小游戏
      目录演示介绍官方文档tkinter.messagebox源码演示 介绍 首先来介绍一下GUI库Tkinter 主要模块: tkinter Main Tkinter module....
      99+
      2024-04-02
    • 怎么用Python+Tkinter实现经典井字棋小游戏
      这篇文章主要讲解了“怎么用Python+Tkinter实现经典井字棋小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python+Tkinter实现经典井字棋小游戏”吧!演示介绍首...
      99+
      2023-06-29
    • 基于JS实现经典的井字棋游戏
      目录先看成品游戏初始化界面:玩家获胜AI电脑获胜思路生成棋盘重新开始玩家落子电脑落子代码HTMLCSSjs井字棋作为我们在上学时代必玩的一款连珠游戏,你知道如何做到先手必然不会输吗?...
      99+
      2024-04-02
    • C语言实现经典小游戏井字棋的示例代码
      目录前言一、井字棋游戏的主流程二、游戏部分1.游戏函数2.初始化棋盘3.打印棋盘4.玩家下棋5.电脑下棋(两个难度等级)6.判断游戏是否结束三、 运行展示四、源码展示前言 这是我在学...
      99+
      2022-11-13
      C语言井字棋游戏 C语言 井字棋 C语言 游戏
    • python怎么实现简单的井字棋小游戏
      这篇文章主要讲解了“python怎么实现简单的井字棋小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python怎么实现简单的井字棋小游戏”吧!窗口万能的窗口,实现窗口都可以进行简单的修...
      99+
      2023-06-30
    • python实现简单的井字棋小游戏
      Python做三子棋游戏,这个是我刚开始了解做Python小游戏的时候第一个项目,因为简单好入手,实现它的过程是我开始摸索Python的GUI界面的入门之路。这个设计也都是按照自己对...
      99+
      2024-04-02
    • C语言实现井字棋小游戏
      C语言实现简单的“井字棋游戏”,供大家参考,具体内容如下 总体构造: 1.游戏菜单的逻辑实现 2.游戏本体的代码实现 part 1:游戏菜单的整体逻辑 ①简单的通过一个输入0和1的s...
      99+
      2024-04-02
    • python实现带界面的井字棋小游戏
      目录1、首先安装tkinter2、初始化窗口3、定义按钮4、检查获胜的条件今天我们用python+tkinter安装带界面的井字棋,效果如图所示。 Tkinter 是 Python...
      99+
      2024-04-02
    • 使用python怎么实现一个井字棋游戏
      这篇文章将为大家详细讲解有关使用python怎么实现一个井字棋游戏,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。使用python实现井字棋游戏,没有具体算法,只是用随机下棋简单实现:impo...
      99+
      2023-06-15
    • 怎么利用C语言实现井字棋小游戏
      本篇内容主要讲解“怎么利用C语言实现井字棋小游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么利用C语言实现井字棋小游戏”吧!推荐阅读顺序(不建议跳过)先看实现之后的界面 —— 然后看分析程...
      99+
      2023-06-20
    • JavaScript Canvas实现井字棋游戏
      本文实例为大家分享了JavaScript Canvas实现井字棋游戏的具体代码,供大家参考,具体内容如下 index.html <!DOCTYPE html> &l...
      99+
      2024-04-02
    • 微信小程序实现井字棋游戏
      本文实例为大家分享了微信小程序实现井字棋游戏的具体代码,供大家参考,具体内容如下 效果图 .wxml <view class="title">   <view w...
      99+
      2024-04-02
    • 利用C语言实现三子棋(井字棋)小游戏
      本文实例为大家分享了C语言实现三子棋(井字棋)小游戏的具体代码,供大家参考,具体内容如下 推荐阅读顺序(不建议跳过) 先看实现之后的界面 —— 然后看分析程序要实现的步骤 —— 之后...
      99+
      2024-04-02
    • C语言怎么实现井字棋游戏
      今天就跟大家聊聊有关C语言怎么实现井字棋游戏,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。井字棋游戏要求在3乘3棋盘上,每行都相同或者每列都相同再或者对角线相同,则胜出.因此我们可以...
      99+
      2023-06-25
    • python实现井字棋游戏的代码怎么写
      python实现井字棋游戏的代码怎么写,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。井字棋简介井字棋又称三子棋,英文名为Tic Tac Toe。具体玩法为在一个3x3的棋盘上,...
      99+
      2023-06-25
    • C语言实现井字棋游戏
      本文实例为大家分享了C语言实现井字棋游戏的具体代码,供大家参考,具体内容如下 首先,我们需要一个大体的思路,先进行宏观规划,再对细节进行实现。 比如: 1、首先需要一个菜单面板作以修...
      99+
      2024-04-02
    • 微信小程序如何实现井字棋游戏
      这篇文章主要介绍了微信小程序如何实现井字棋游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序如何实现井字棋游戏文章都会有所收获,下面我们一起来看看吧。效果图.wxml<view cla...
      99+
      2023-06-30
    • python实现人机对战的井字棋游戏
      本文实例为大家分享了python实现人机对战井字棋的具体代码,供大家参考,具体内容如下 游戏简介:在九宫格内进行,如果一方抢先于另一方向(横、竖、斜)连成3子,则获得胜利。游戏中输入...
      99+
      2024-04-02
    • Java+Swing实现经典五子棋游戏
      目录前言主要需求主要设计功能截图代码实现总结前言 五子棋是世界智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类游戏,是世界智力运动会竞技项目之一,通常双方分别使用黑白两色的棋子,...
      99+
      2024-04-02
    • 用C语言实现井字棋游戏代码
      目录前言首先得确定程序实现的功能直接上代码:1. 菜单界面2. 棋盘打印3. 玩家下棋4. 电脑下棋(智障下棋版,毫无智能)5. 判断输赢搞定总结前言 我们都玩过或见过这样一种简单地...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作