没有合适的资源?快使用搜索试试~ 我知道了~
首页python 实现围棋游戏(纯tkinter gui)
python 实现围棋游戏(纯tkinter gui)
5星 · 超过95%的资源 26 下载量 13 浏览量
更新于2023-03-03
评论
收藏 152KB PDF 举报
1. 开始前 本程序基于tkinter生成GUI,使用前请确保已经安装好tkinter 对于windows用户,您可能已经安装了tkinter,cmd中输入python -c ‘import tkinter’,如果没有出错则已安装tkinter 对于linux用户,您可能未安装tkinter,使用包管理工具搜索tkinter,如:apt search tkinter,pacman -Ss tkinter,yum search tkinter,选择符合要求的软件包,然后安装,如果未找到,请自行下载并编译源代码,再安装。 2.完整代码 #!/usr/bin/python3 # 使用Python
资源详情
资源评论
资源推荐
python 实现围棋游戏实现围棋游戏(纯纯tkinter gui)
1. 开始前开始前
本程序基于tkinter生成GUI,使用前请确保已经安装好tkinter
对于windows用户,您可能已经安装了tkinter,cmd中输入python -c ‘import tkinter’,如果没有出错则已安装tkinter
对于linux用户,您可能未安装tkinter,使用包管理工具搜索tkinter,如:apt search tkinter,pacman -Ss tkinter,yum search
tkinter,选择符合要求的软件包,然后安装,如果未找到,请自行下载并编译源代码,再安装。
2.完整代码完整代码
#!/usr/bin/python3
# 使用Python内置GUI模块tkinter
from tkinter import *
# ttk覆盖tkinter部分对象,ttk对tkinter进行了优化
from tkinter.ttk import *
# 深拷贝时需要用到copy模块
import copy
import tkinter.messagebox
# 围棋应用对象定义
class Application(Tk):
# 初始化棋盘,默认九路棋盘
def __init__(self,my_mode_num=9):
Tk.__init__(self)
# 模式,九路棋:9,十三路棋:13,十九路棋:19
self.mode_num=my_mode_num
# 窗口尺寸设置,默认:1.8
self.size=1.8
# 棋盘每格的边长
self.dd=360*self.size/(self.mode_num-1)
# 相对九路棋盘的矫正比例
self.p=1 if self.mode_num==9 else (2/3 if self.mode_num==13 else 4/9)
# 定义棋盘阵列,超过边界:-1,无子:0,黑棋:1,白棋:2
self.positions=[[0 for i in range(self.mode_num+2)] for i in range(self.mode_num+2)] # 初始化棋盘,所有超过边界的值置-1
for m in range(self.mode_num+2):
for n in range(self.mode_num+2):
if (m*n==0 or m==self.mode_num+1 or n==self.mode_num+1):
self.positions[m][n]=-1
# 拷贝三份棋盘“快照”,悔棋和判断“打劫”时需要作参考
self.last_3_positions=copy.deepcopy(self.positions)
self.last_2_positions=copy.deepcopy(self.positions)
self.last_1_positions=copy.deepcopy(self.positions)
# 记录鼠标经过的地方,用于显示shadow时
self.cross_last=None
# 当前轮到的玩家,黑:0,白:1,执黑先行
self.present=0
# 初始停止运行,点击“开始游戏”运行游戏
self.stop=True
# 悔棋次数,次数大于0才可悔棋,初始置0(初始不能悔棋),悔棋后置0,下棋或弃手时恢复为1,以禁止连续悔棋
self.regretchance=0
# 图片资源,存放在当前目录下的/Pictures/中
self.photoW=PhotoImage(file = "./Pictures/W.png")
self.photoB=PhotoImage(file = "./Pictures/B.png")
self.photoBD=PhotoImage(file = "./Pictures/"+"BD"+"-"+str(self.mode_num)+".png")
self.photoWD=PhotoImage(file = "./Pictures/"+"WD"+"-"+str(self.mode_num)+".png")
self.photoBU=PhotoImage(file = "./Pictures/"+"BU"+"-"+str(self.mode_num)+".png")
self.photoWU=PhotoImage(file = "./Pictures/"+"WU"+"-"+str(self.mode_num)+".png")
# 用于黑白棋子图片切换的列表
self.photoWBU_list=[self.photoBU,self.photoWU] self.photoWBD_list=[self.photoBD,self.photoWD] # 窗口大小
self.geometry(str(int(600*self.size))+'x'+str(int(400*self.size)))
# 画布控件,作为容器
self.canvas_bottom=Canvas(self,bg='#369',bd=0,width=600*self.size,height=400*self.size)
self.canvas_bottom.place(x=0,y=0)
# 几个功能按钮
self.startButton=Button(self,text='开始游戏',command=self.start)
self.startButton.place(x=480*self.size,y=200*self.size)
self.passmeButton=Button(self,text='弃一手',command=self.passme)
self.passmeButton.place(x=480*self.size,y=225*self.size)
self.regretButton=Button(self,text='悔棋',command=self.regret)
self.regretButton.place(x=480*self.size,y=250*self.size)
# 初始悔棋按钮禁用
self.regretButton['state']=DISABLED
self.replayButton=Button(self,text='重新开始',command=self.reload)
self.replayButton.place(x=480*self.size,y=275*self.size)
self.newGameButton1=Button(self,text=('十三' if self.mode_num==9 else '九')+'路棋',command=self.newGame1)
self.newGameButton1.place(x=480*self.size,y=300*self.size)
self.newGameButton2=Button(self,text=('十三' if self.mode_num==19 else '十九')+'路棋',command=self.newGame2)
self.newGameButton2.place(x=480*self.size,y=325*self.size)
self.quitButton=Button(self,text='退出游戏',command=self.quit)
self.quitButton.place(x=480*self.size,y=350*self.size)
weixin_38676851
- 粉丝: 8
- 资源: 895
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- ExcelVBA中的Range和Cells用法说明.pdf
- 基于单片机的电梯控制模型设计.doc
- 主成分分析和因子分析.pptx
- 共享笔记服务系统论文.doc
- 基于数据治理体系的数据中台实践分享.pptx
- 变压器的铭牌和额定值.pptx
- 计算机网络课程设计报告--用winsock设计Ping应用程序.doc
- 高电压技术课件:第03章 液体和固体介质的电气特性.pdf
- Oracle商务智能精华介绍.pptx
- 基于单片机的输液滴速控制系统设计文档.doc
- dw考试题 5套.pdf
- 学生档案管理系统详细设计说明书.doc
- 操作系统PPT课件.pptx
- 智慧路边停车管理系统方案.pptx
- 【企业内控系列】企业内部控制之人力资源管理控制(17页).doc
- 温度传感器分类与特点.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论5