小游戏实战丨基于Tkinter的五子棋小游戏

五子棋

文章目录

  • 写在前面
  • Tkinter
  • 五子棋
  • 系列文章
  • 写在后面

写在前面

本期内容:基于tkinter的五子棋小游戏

下载地址:https://download.csdn.net/download/m0_68111267/88700190

实验环境

  • python3.11及以上
  • pycharm
  • tkinter

Tkinter

Tkinter是Python的一个标准的图形用户界面(GUI)库,它是基于Tk工具包的。Tkinter库提供了GUI应用程序开发所需的各种组件和方法,方便开发者快速创建用户友好的界面。

为了使用Tkinter库,首先需要导入Tkinter模块。一般习惯使用import tkinter或者import tkinter as tk来导入。

之后,创建一个窗口是使用Tk()函数来实现的。例如:

import tkinter as tkwindow = tk.Tk()
window.mainloop()

上述代码创建了一个名为window的窗口,并通过mainloop()函数使窗口保持运行状态,直到用户关闭它。

在窗口中,可以添加其他组件,如按钮、标签、文本框等。例如,创建一个按钮的代码如下:

button = tk.Button(window, text="点击我")
button.pack()

上述代码创建了一个名为button的按钮,并使用pack()方法将按钮添加到窗口中。

除了按钮,还可以创建标签、文本框等组件。例如,创建一个标签的代码如下:

label = tk.Label(window, text="这是一个标签")
label.pack()

上述代码创建了一个名为label的标签,并使用pack()方法将标签添加到窗口中。

对于每个组件,可以设置其属性,如文本、颜色、大小等。例如,设置按钮的背景颜色和文本颜色的代码如下:

button.config(bg="red", fg="white")

上述代码设置按钮的背景颜色为红色,文本颜色为白色。

除了属性设置,还可以为组件绑定事件处理函数,实现在用户操作组件时触发特定的动作。例如,为按钮绑定点击事件的代码如下:

button.config(command=button_click)def button_click():print("按钮被点击了!")

上述代码定义了一个名为button_click的函数,当按钮被点击时,会触发该函数,并在控制台输出一条消息。

总结来说,通过Tkinter库,可以很方便地创建GUI应用程序。可以使用各种组件和方法来创建窗口、添加组件、设置属性和事件处理等。这只是一个简单的入门介绍,Tkinter还有更多的功能和用法,可以进一步学习和探索。

五子棋

背景图片

刘诗诗

程序设计

from tkinter.messagebox import *  # 导入消息弹出库
from tkinter import *  # 导入tkinter界面库
from random import *  # 导入random随机库
from PIL import Image, ImageTk  # 导入PIL包中的Image包和ImageTk包,用于打开图片,用作背景(可更换图片)
import winsound  # 导入声音库
import os# 声明全局变量开始
global canvas
global back_x, back_y, last
global qipan
qipan = [[2 for i in range(16)] for i in range(16)]  # 2表示空,0表示蓝棋,1表示粉棋
col = ['蓝', '粉']
global index  # 创建落子计数变量
index = 0
global var_top
global hui
hui = 0
# 声明全局变量结束……请下载后查看

运行结果

五子棋

系列文章

序号目录直达链接
1基于PyGame的俄罗斯方块小游戏https://want595.blog.csdn.net/article/details/135427809
2基于Tkinter的五子棋小游戏https://want595.blog.csdn.net/article/details/135427644
3基于PyGame的消消乐小游戏https://want595.blog.csdn.net/article/details/135390188
4基于PyGame的贪吃蛇小游戏https://want595.blog.csdn.net/article/details/135373146

写在后面

我是一只有趣的兔子,感谢你的喜欢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/601326.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue2 element 弹出框拖拽会出现一层阴影问题

问题如图所示&#xff1a; 因增加 draggable 属性导致我弹窗表单清空文本框时&#xff0c;从右向左选中字体会出现拖拽阴影效果 去掉 draggable 即可 <template><div class"sys-jobTrigger-container"><el-dialog:visible.sync"state.isShowD…

密码学:一文看懂初等数据加密一对称加密算法

文章目录 对称加密算法简述对称加密算法的由来对称加密算法的家谱数据加密标准-DES简述DES算法的消息传递模型DES算法的消息传递过程和Base64算法的消息传递模型的区别 算法的实现三重DES-DESede三重DES-DESede实现 高级数据加密标准一AES实现 国际数据加密标准-IDEA实现 基于口…

25计算机专业考研经验贴之准备篇

Hello各位小伙伴&#xff0c;大家新年好&#xff01; 马上就要进入寒假假期了&#xff0c;25考研也该提上日程了。今天先跟大家分享一下大家在假期可以先做起来的准备工作。 【选择学校】 择校是个非常重要的内容&#xff0c;因为不同学校的考试内容是不一样的&#xff0c;有些…

SpringBoot基于哨兵模式的Redis(7.2)集群实现读写分离

文章目录 一、前提条件二、SpringBoot访问Redis集群1. 引入依赖2. yaml配置3. 设置读写分离4. 简单的controller 三、运行四、测试1. 写2. 读3. 额外测试 环境 docker desktop for windows 4.23.0redis 7.2Idea 一、前提条件 先根据以下文章搭建一个Redis集群 Docker-Compo…

C++入门【20-C++ 指针的算术运算】

指针是一个用数值表示的地址。因此&#xff0c;您可以对指针执行算术运算。可以对指针进行四种算术运算&#xff1a;、--、、-。 假设 ptr 是一个指向地址 1000 的整型指针&#xff0c;是一个 32 位的整数&#xff0c;让我们对该指针执行下列的算术运算&#xff1a; ptr 执行 …

FreeRTOS 实时操作系统第九讲 - 链表 (数据结构)

一、链表简述 链表是一种物理存储单元上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列节点&#xff08;链表中每一个元素称为节点&#xff09;组成&#xff0c;节点可以在运行时动态生成。每个节点包括两个部分&…

Spring整合MyBatis框架!!!

搭建环境&#xff1a; pom.xml: <properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></pro…

设计模式:原型模式

原型模式 定义代码实现使用场景 定义 原型模式&#xff08;Prototype Pattern&#xff09;是一种创建型设计模式&#xff0c;它允许通过复制现有的对象来创建新对象&#xff0c;而无需从头开始编写代码。在这个模式中&#xff0c;我们可以使用已经存在的对象作为“原型”&…

指定linux文件夹下所有文件赋权命令“chmod -R 755”

仓库&#xff1a;Ai-trainee/GPT-Prompts-Hub 下面我们假设要为&#xff1a;/opt/robot/lib/robot_control/下所有子文件赋权 如果要为 robot_control 目录中的所有文件分配权限&#xff08;在 Linux 术语中也称为“更改文件权限”或“chmod”&#xff09;&#xff0c;则可以…

如何在JS中实现修改URL参数而不刷新页面

可以使用URLSearchParams对象来修改URL参数&#xff0c;而不刷新页面。以下是一个示例代码 // 获取当前URL var url new URL(window.location.href); // 创建URLSearchParams对象 var params new URLSearchParams(url.search);// 修改指定参数的值 params.set(paramName, pa…

残疾大学生找工作好难

有点肢体残疾且普通话不太标准的大学生好难找工作啊&#xff0c;怎么办&#xff1f;难道得去捡垃圾了&#xff1f;求学多年&#xff0c;好容易读了个大学(省内一本)&#xff0c;我咋这么命苦&#xff0c;找了800多家&#xff0c;面试好几家&#xff0c;都没一个要我的。

Crow:run的流程3 接受http连接请求do_accept

Crow:run的流程2 建立io_service及线程-CSDN博客 介绍了run的Crow会启动一个线程并用于处理do_accept。 那么do_accept本身是做什么的呢? void Server::do_accept() {if (!shutting_down_){uint16_t service_idx = pick_io_service_idx();asio::io_service& is = *io_s…

Microsoft Visual Studio 2022 install Project 下载慢

1. 关闭Internet 协议版本6 2. 如果没有效果&#xff0c;打开Internet 协议版本4&#xff0c;更改DNS 3. 在浏览器中下载后安装&#xff0c;下载地址如下&#xff1a; Microsoft Visual Studio Installer Projects 2022 - Visual Studio Marketplace 4. 安装时注意关闭vs&…

【华为OD真题 Python】寻找最优的路测线路

文章目录 题目描述输入描述输出描述示例1输入输出说明示例2输入输出说明备注实现代码题目描述 评估一个网络的信号质量,其中一个做法是将网络划分为栅格,然后对每个栅格的信号质量计算。路测的时候,希望选择一条信号最好的路线(彼此相连的栅格集合)进行演示。现给出R行C列…

2024CISA开门红,凌晨通过

祝各位新年快乐&#xff0c;万事顺遂 听说最近it内审有很多甲方开始裁员&#xff0c;为了防止波及到各位&#xff0c;想必各位也在考虑考取证书提高自己的权重&#xff0c;就算后面波及到了自己&#xff0c;去换工作的时候也会快人一步 但是大家都知道&#xff0c;最近都忙得…

一种DevOpts的实现方式:基于gitlab的CICD(一)

写在之前 笔者最近准备开始入坑CNCF毕业的开源项目&#xff0c;看到其中有一组开源项目的分类就是DevOpts。这个领域内比较出名的项目是Argocd&#xff0c;Argo CD 是一个用于 Kubernetes 的持续交付 (Continuous Delivery) 工具&#xff0c;它以声明式的方式实现了应用程序的…

五、HTML 标题

在 HTML 文档中&#xff0c;标题很重要。 一、HTML 标题 标题&#xff08;Heading&#xff09;是通过 <h1> - <h6> 标签进行定义的。<h1> 定义最大的标题。 <h6> 定义最小的标题。 <h1>这是一个标题。</h1> <h2>这是一个标题。&l…

第九节HarmonyOS 常用基础组件9-TextArea

1、描述 多行文本输入框组件&#xff0c;当输入的文本内容超过组件宽度时会自动换行显示。 2、接口 TextArea(value?:{placeholder?: ResourceStr, text?: ResourceStr, controller?: TextAreaController}) 3、参数 参数名 参数类型 必填 描述 placeholder Resour…

使用mysql查询当天、近一周、近一个月及近一年的数据以及各种报表查询sql

1.mysql查询当天的数据 1 select * from table where to_days(时间字段) to_days(now()); 2.mysql查询昨天的数据 1 select * from table where to_days(now( ) ) - to_days( 时间字段名) < 1 3.mysql查询近一个月的数据 1 SELECT * FROM table WHERE date(时间字段) …

[蓝桥杯 2018 ]激光样式

激光样式 题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 X 星球的盛大节日为增加气氛&#xff0c;用 30 台机光器一字排开&#xff0c;向太空中打出光柱。 安装调试的时候才发现&#xff0c;不知什么原因&#…