python实现井字棋游戏的代码怎么写
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,python实现井字棋游戏的代码怎么写,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。井字棋简介井字棋又称三子棋,英文名为Tic Tac
千家信息网最后更新 2025年01月17日python实现井字棋游戏的代码怎么写
python实现井字棋游戏的代码怎么写,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
井字棋简介
井字棋又称三子棋,英文名为Tic Tac Toe。具体玩法为在一个3x3的棋盘上,一个玩家用X做棋子,另一个玩家用O做棋子,谁先在棋盘上的一行、一列或对角线上画满三个棋子,即可获胜,如果棋盘下满无人胜出,即为平局。
实例代码
#要用的函数,可以在主程序用到时再看def panduan1(a,b):#判断是否获胜,返回1则证明此颜色的棋获胜 x=0 if x==0: for i in range(3):#检索二维数组的第i行 q=0;p=0 for j in range(3):#检索第i行列表的所有元素 if a[i][j]==b: q+=1#i行每有一个与所给的b棋的颜色相同,q就加一 if q==3:#如果此行三个元素都与所给棋的颜色相同,则返回1 return 1 if a[j][i]==b:#i,j位置颠倒,变为检测每列的三个元素 p+=1#i列每有一个与所给的b棋的颜色相同,q就加一 if p==3:#如果此列三个元素都与所给棋的颜色相同,则返回1 return 1 q=0;w=0 for i in range(3):#判断对角线上的三个元素棋的颜色是否与b棋相同 if a[i][i]==b:#判断正对角线 q+=1#正对角线每有一个棋子与b颜色相同,q就加一 if a[i][2-i]==b:#判断另一条对角线 w+=1#负对角线每有一个棋子与b颜色相同,w就加一 if q==3 or w==3:#其中一条对角线和b棋颜色全部相同,则返回1 return 1 return 0#以上条件都未返回值,则运行到这一步,返回0def xiaqi(all,qi,a):#将指定qi棋(白棋或黑棋)下到指定的a位置 all[int(qi[1])-1][int(qi[0])-1]=adef shuru1():#输入要下的位置并返回对应的9键位置列表 x=input()#输入要下棋盘的位置 suoyou='123456789' if suoyou.find(x)==-1:#限制范围为1-9,模拟的手机的9键位置 print('输入不符合要求:') return 'no'#不合要求返回no y=0 sum=''#存棋下的位置 for j in range(1,4):#行号,整个循环循环x次,因为被下边break语句限制 for z in range(1,4):#列号 y+=1#循环一次加一,用于匹配是否和输入的数一样 sum=str(z)+','+str(j)#键盘的9个键和相应的坐标all[j][z] if y==int(x):#匹配是否和输入的数一样,从1开始,匹配一样则返回9键对应位置列表并中断循环,比如输入2,返回[2,1],对应9键第一行第二列 return(sum.split(','))#返回对应9键的位置列表 breakdef panduan2(all,x):#判断棋盘此位置是否已有棋子 hang=int(x[1]) lie=int(x[0]) if all[hang-1][lie-1]!='-':#只需要判断此位置是否为'-'号即可 return 1#返回1,就是此位置已有棋子 else: return 0#返回0,就是此位置没有棋子def dayin(all):#打印函数:用于打印棋盘现在的状况 for i in range(3): print(' '.join(all[i]))#主程序开始all=[['-','-','-'],['-','-','-'],['-','-','-']]#建立棋盘,"-"号代表棋盘无棋子t=0;w=0print('游戏开始!\n黑棋先:')while t==0 and w==0:#利用t,w来分别表明黑白两棋的获胜,1为获胜,初始为0是为了进行一个整体循环,直到有一方获胜,则跳出循环 dayin(all) print('轮到黑棋了:')#先下黑棋,标识符为'1' hei=shuru1()#输入黑棋要下的位置 while hei=='no' or panduan2(all,hei)==1:#设置重新输入判断命令,在输入的数不为1-9的数字或此位置有棋时重新输入,直到输入正确时退出循环 dayin(all)#有误时先再次打印一次棋盘 print('请重新输入:') hei=shuru1()#再次输入1-9数字 xiaqi(all,hei,'1')#下黑棋 t=panduan1(all,'1')#判断黑棋是否获胜,是则返回1 dayin(all)#再次打印此时棋盘 if t==1:#判断hei返回是否为1,是的话代表hei棋获胜,并退出循环 print('黑棋赢!') break all1=all[0]+all[1]+all[2]#将棋盘加成一个字符串,利于判断是否还有空位置可下棋 if all1.count('-')==0:#如果没有'-'号,则棋盘被下满,平局,退出循环 dayin(all)#再次打印棋盘,为了好看,可以将这句挪到print下边 print('平局!') break print('轮到白棋了:')#以下内容和黑棋下法一样,是白棋的下法,白棋标识为'0' bai=shuru1() while bai=='no' or panduan2(all,bai)==1: dayin(all) print('请重新输入:') bai=shuru1() xiaqi(all,bai,'0') w=panduan1(all,'0') if w==1: print('白棋赢!') dayin(all) all1=all[0]+all[1]+all[2] if all1.count('-')==0: dayin(all) print('平局!') breakprint('游戏结束!')
运行结果在这啦,快和你的小伙伴一块玩吧:
看完上述内容,你们掌握python实现井字棋游戏的代码怎么写的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
位置
输入
棋盘
棋子
颜色
黑棋
循环
相同
对角
对角线
三个
元素
白棋
加一
井字
再次
平局
代码
内容
一行
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
职工培训 网络技术
c 批量查询数据库
中山服务器散热器
有关手机网络安全的英语作文
美国网络安全认证公司排名
服务器账号管理器
服务器安全有哪些影响
计算机软件开发属于哪些行业
一般网络安全法是指什么
学校网络安全活动月总结
数据库外键怎么删除数据
中文数据库在哪里备案
自贡软件开发价格多少
svn 服务器软件
互联网新科技公司的统称
浪潮服务器销售案例模板
中兴服务器工厂
软件开发的最初工作是什么
公安部网络安全总工程师
php数据库导入查询系统
保网络安全管理制度
网络安全 合规数据
数据库跟数据表管理
北京优合信网络技术有效公司
419网络安全
沈阳三维地图仿真三维软件开发
紧计算机网络技术专业代码
全国求购电脑打印机服务器液晶屏
互联网新科技公司的统称
镇江网络技术咨询公司