幽灵资源网 Design By www.bzswh.com
python实现棋盘覆盖图形界面,供大家参考,具体内容如下
一、解决方案和关键代码
工具: python tkinter库
问题描述:
解决方法:递归与分治法
算法关键代码
def chessBoard(tr,tc,dr,dc,size): global tile global board if (size==1): return 0 tile+=1 t=tile s=size//2 #the upper left corner if (dr<tr+s and dc<tc+s): chessBoard(tr,tc,dr,dc,s) else: board[tr+s-1,tc+s-1]=t chessBoard(tr,tc,tr+s-1,tc+s-1,s) #the upper right corner if (dr<tr+s and dc>=tc+s): chessBoard(tr,tc+s,dr,dc,s) else: board[tr+s-1,tc+s]=t chessBoard(tr,tc+s,tr+s-1,tc+s,s) #the lower left corner if (dr>=tr+s and dc<tc+s): chessBoard(tr+s,tc,dr,dc,s) else: board[tr+s,tc+s-1]=t chessBoard(tr+s,tc,tr+s,tc+s-1,s) #the lower right corner if (dr>=tr+s and dc>=tc+s): chessBoard(tr+s,tc+s,dr,dc,s) else: board[tr+s,tc+s]=t chessBoard(tr+s,tc+s,tr+s,tc+s,s)
画棋盘关键代码:
def drawboard(canvas1,board,colors,startx=50,starty=50,cellwidth=50): width=2*startx+len(board)*cellwidth height=2*starty+len(board)*cellwidth canvas1.config(width=width,height=height)#布置画布 for i in range(len(board)): for j in range(len(board)): index=board[i][j] if index== 0: color='white'#特殊方格显示为白色 else: color=colors[6*index]#为了间隔开颜色 cellx=startx+i*50 celly=starty+j*50 canvas1.create_rectangle(cellx,celly,cellx+cellwidth,celly+cellwidth,fill=color,outline="black")#画方格 canvas1.update()
二、数据测试
特殊方格坐标为(1,1),棋盘大小为(2^2*2^2)
特殊方格坐标为(2,2),棋盘大小为(2^3*2^3)
完整代码下载链接点这里
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
幽灵资源网 Design By www.bzswh.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
幽灵资源网 Design By www.bzswh.com
暂无评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。