编写五子棋的完整python代码_python-大作业之五子棋游戏(附代码)

本文介绍了一个使用Python编写的双人五子棋游戏,支持通过鼠标操作,左键代表黑方,右键代表白方。游戏界面简洁,能够自动判断胜负,并在一方连成五子时显示结果。作者分享了代码实现和游戏过程,同时表达了编程过程中遇到的挑战和收获。
摘要由CSDN通过智能技术生成

s.gifpython-大作业之五子棋游戏(附代码)

Python 大作业大作业五子棋游戏五子棋游戏姓名吴欣 学号姓名张雨清 学号 一一 游戏介绍游戏介绍我们设计的是五子棋游戏,支持两人一个鼠标对下,黑方用左键单击,白方用右键单击,谁先下均可,落子无悔,下过的棋子对方点击后不会变色,程序可自行判断输赢并在五子连珠时弹出结果对话框,游戏双方需遵守不在空地点击和一次下一子的规则。二二 游戏代码设计游戏代码设计代码均为原创,没有借鉴和抄袭,首先是用户 GUI 界面设计,点击 start 进入游戏界面,点击 quit 则退出程序,为了方便判断和记录,我们按从左到右,从上到下的顺序给 15x15225 颗棋子编号225,左键绑定函数 callback1,点击后可算出它位于哪颗棋子上再画出来黑子,并把对应编号计入 record 这个列表,之后进入判断函数。右键绑定函数 callback2,点击后画出白子,对应编号计入 recor 这个列表,之后进入判断函数,其中总列表 rec 的作用是使棋子不被下第二遍。三三 作业感想作业感想这个游戏虽然很小但是可以供室友们晚上娱乐之用,我们倾注了很多心血,之前采用模块化编程失败了很多次,有事件响应问题,参数传递问题,到第七个程序才成功,感谢张同珍老师指点了很多,我们学会了使用类,受益匪浅,对 Python 产生了浓厚的兴趣。四四 过程截图过程截图五、实验代码from Tkinter import * from tkMessageBox import * class Gamedef initselfself.Aself.Bself.recordsetself.recorsetself.recself.record|self.recorself.rootTkself.root.geometry“180 x250“self.root.title“Wu Zi Qi Game“self.rCanvasself.root,width180,height210,bg“purple“picPhotoImagefile“beijing.gif“self.r.create_image90,100,imagepicself.r.placex0,y15Labelself.root,text“*Wu Zi Qi Game*“,fg“red“.placex20,y0Buttonself.root,text“start“,commandself.start.placex30,y230Buttonself.root,text“quit “,commandself.root.destroy.placex100,y230self.r.mainloopdef startselfself.root.destroyself.topTkself.top.title“Game Start“self.cCanvasself.top,width480,height480,bg“white“self.c.packself.c.create_rectangle25,25,455,455,fill“gray“for i in range30,451,30for j in range30,451,30self.c.create_ovali-2,j-2,i2,j2,fill“blue“for i in range1,16self.c.create_line30,30*i,450,30*iself.c.create_line30*i,30,30*i,450self.c.create_oval234,234,246,246,fill“black“self.c.create_oval115,115,125,125,fill“black“self.c.create_oval355,115,365,125,fill“black“self.c.create_oval115,355,125,365,fill“black“self.c.create_oval355,355,365,365,fill“black“self.c.bind,self.callback1self.c.bind,self.callback2self.c.mainloop def callback1self,eventu,vevent.x,event.ysu/15if s21self.xs1/2elseself.xs/2lv/15if l21self.yl1/2elseself.yl/2gself.y-1*15self.xwhile g not in self.recself.c.create_ovalself.x*30-12,self.y*30- 12,self.x*3012,self.y*3012,fill“black“self.A.appendgself.recordsetself.Aself.recself.record|self.recorjudgepanduang,self.recordif judge1answershowinfo“Game over“,“Black wins“self.top.destroydef callback2self,eventu,vevent.x,event.ysu/15if s21self.ms1/2elseself.ms/2lv/15if l21self.nl1/2elseself.nl/2kself.n-1*15self.mwhile k not in self.recself.c.create_ovalself.m*30-12,self.n*30- 12,self.m*3012,self.n*3012,fill“white“self.B.appendkself.recorsetself.Bself.recself.record|self.recorjudgepanduank,self.recorif judge1answershowinfo“Game over“,“White wins“self.top.destroydef panduang,record判断横排是否出现赢的情况if g-4,g-3,g-2,g-1recordreturn 1elif g-3,g-2,g-1,g1recordreturn 1elif g-2,g-1,g1,g2recordreturn 1 elif g-1,g1,g2,g3recordreturn 1 elif g1,g2,g3,g4recordreturn 1 判断竖列是否出现赢的情况elif g-60,g-45,g-30,g-15recordreturn 1 elif g-45,g-30,g-15,g15recordreturn 1 elif g-30,g-15,g15,g30recordreturn 1 elif g-15,g15,g30,g45recordreturn 1 elif g15,g30,g45,g60recordreturn 1判断列是否出现赢的情况elif g-16,g-32,g-48,g-64recordreturn 1 elif g-48,g-32,g-16,g16recordreturn 1 elif g-32,g-16,g16,g32recordreturn 1 elif g-16,g16,g32,g48recordreturn 1 elif g16,g32,g48,g60recordreturn 1判断/列是否出现赢的情况elif g-14,g-28,g-42,g-56recordreturn 1 elif g-14,g-28,g-42,g14recordreturn 1elif g-14,g-28,g14,g28recordreturn 1elif g-14,g14,g28,g42recordreturn 1elif g14,g28,g42,g56recordreturn 1elsereturn 0def mainprint “欢迎来到五子棋战场黑方用左键,白方用右键,谁先下都可以,落子无悔,不 要在棋盘周围空地点击。Are you ready“gameGame main

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值