版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python大作业一五子棋嬉
戏
姓名:吴欣学号:
姓名:张雨清学号:
一嬉戏介绍:
我们设计的是五子棋嬉戏,支持两人一个鼠标对下,黑方用左
键单击,白方用右键单击,谁先下均可,落子无悔,下过的棋子对方
点击后不会变色,程序可自行推断输赢并在五子连珠时弹出结果对话
框,嬉戏双方需遵守不在空地点击和一次下一子的规则。
二嬉戏代码设计:
代码均为原创,没有借鉴和抄袭,首先是用户GUI界面设计-,
点击start进入嬉戏界面,点击quit则退出程序,为了便利推断和
记录,我们按从左到右,从上到下的依次给15x15二225颗棋子编号
225,左键绑定函数callbackl,点击后可算出它位于哪颗棋子上再画
出来黑子,并把对应编号计入record这个列表,之后进入推断函数。
右键绑定函数callback2,点击后画出白子,木■应编号计入recor这
个列表,之后进入推断函数,其中总列表rec的作用是使棋子不被下
其次遍。
三作业感想
这个嬉戏虽然很小但是可以供室友们晚上消遣之用,我们倾注
了许多心血,之前采纳模块化编程失败了许多次,有事务响应问题,
参数传递问题,到第七个程序才胜利,感谢张同珍老师指引了许多,
我们学会了运用类,受益匪浅,对Python产生了深厚的爱好。
四过程截图
五、试验代码
fromTkinterimport*
fromLkMessageBoximport*
classGame:
def_init_(self):
self.A=[]
self.B=[]
self.record=set()
self.recor=set()
self.rec=self.recordself,recor
self.root=Tk()
self.root,geometry(〃180x250〃)
self.root,title(,zWuZiQiGame")
self.r=Canvas(self,root,width=180,height=210,bg=〃purple")
pic=PhotoImage(file="beijing.gif〃)
self.r.create_image(90,100,image=pic)
self.r.place(x=0,y=15)
Label(self,root,text='ZiQi
Game***",fg=〃red"),place(x=20,y=0)
Button(self,root,text=zzstart,z,command=self,start).place(x=3
0,y=230)
Button(self,root,text="quit
〃,command二self.root,destroy),place(x=100,y=230)
self.r.mainLoop()
defstart(self):
self.root,destroy()
self=Tk()
self.titleC'GameStart")
self.c=Canvas(self,width=480,height=480,bg=〃white")
self.c.pack()
self.c.create_rectangle(25,25,455,455,fill二〃gray")
foriinrange(30,451,30):
forjinrange(30,451,30):
self.c.createoval(i-2,j-2,i+2,j+2,fill="blue")
foriinranged,16):
self.c.create_line(30,30*i,450,30*i)
self.c.create1ine(30*i,30,30*i,450)
self.c.create_oval(234,234,246,246,fill=zzblack,z)
self.c.create_oval(115,115,125,125,fill="black")
elf.y*30+12,fill二〃black")
self.A.append(g)
self.record=set(self.A)
self.rec=self.record|self,recor
judge=panduan(g,self,record)
ifjudge==l:
answer=showinfo("Gameover","Blackwins!”)
self,destroy()
defcallback2(self,event):
u,v=event.x,event,y
s=u/15
ifs%2==l:
self.m=(s+l)/2
else:
self.m=s/2
l=v/15
if1%2==1:
self.n=(l+l)/2
else:
self.n=L/2
k=(self.n-l)*15+self.m
whi1eknotinself,rec:
self.c.create_oval(self,m*30T2,self,n*30T2,self.m*30+12,s
elf.n*30+12,fill="white")
self.B.append(k)
self.recor=set(self.B)
self,rec=self,record|self,recor
judge=panduan(k,self,recor)
ifjudge==l:
answer=showinfo("Gameover","Whitewins!”)
self,destroy()
defpanduan(g,record):
#推断横排是否出现赢的状况
if(g_4,g-3,g-2,g-1}<=record:
return1
elif{g-3,g-2,g-1,g+1}<=record:
return1
elif{g_2,g-1,g+1,g+2}<=record:
return1
elif{g-1,g+1,g+2,g+3}〈二record:
return1
elif{g+1,g+2,g+3,g+4}<=record:
return1
#推断竖列是否出现赢的状况
elif{g-60,g-45,g-30,g-15)<=record:
return1
elif{g-45,g-30,g-15,g+15)<=record:
return1
elif{g-30,g-15,g+15,g+30)<=record:
return1
elif{g-15,g+15,g+30,g+45)<=record:
return1
elif{g+15,g+30,g+45,g+60)<=record:
return1
#推断'列是否出现赢的状况
elif{g-16,g-32,g-48,g-64)<=record:
return1
elif{g-48,g-32,g-16,g+16}<=record:
return1
elif{g-32,g-16,g+16,g+32)<=record:
return1
elif{g-16,g+16,g+32,g+48}<=record:
return1
elif{g+16,g+32,g+48,g+60)<=record:
return1
#推断/列是否出现赢的状况
elif{g-14,g-28,g-42,g-56)<=record:
return1
elif{g_14,g-28,g-42,g+14)<=record:
return1
elif{g-14,g-28,g+14,g+28)<=record:
return1
elif{g-14,g+14,g+28,g+42}〈二record:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年食品药品安全监管专项资金审计案例
- 2026年沙盘游戏在留守儿童团体心理辅导中的应用
- 2026年餐厅大众点评美团运营策略
- 小学科普知识地球科学
- 重症医学科感染性休克护理措施
- 大肠癌手术后护理措施
- ICU护理敏感指标
- 感染科院内感染防控规范
- 耳鼻喉科鼻窦炎手术后护理指导
- 全科医学科慢性病患者家庭护理计划
- 2026贵州六盘水市直事业单位遴选33人笔试模拟试题及答案解析
- 2026年3月山东济南轨道交通集团运营有限公司社会招聘备考题库带答案详解ab卷
- 2026年陕西财经职业技术学院单招职业技能测试题库附答案详解(突破训练)
- 数字乡村规划方案
- 2026年1月浙江高考历史真题(原卷版+解析版)
- 2025-2030长三角新材料产业集聚区行业市场供需研究及投资周期规划分析报告
- 铝单板质量制度规范
- 2026年国机集团纪检监察中心部分岗位公开招聘备考题库及答案详解参考
- GB/Z 37312.2-2025航空电子过程管理航空航天、国防及其他高性能应用领域(ADHP)电子元器件第2部分:无源元件通用要求
- 2026年湖州职业技术学院单招综合素质考试题库及完整答案详解1套
- 护士长科室管理
评论
0/150
提交评论