最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python自帶tkinter庫實現(xiàn)棋盤覆蓋圖形界面

 更新時間:2019年07月17日 16:48:41   作者:kevinoop  
這篇文章主要為大家詳細介紹了python自帶tkinter庫實現(xiàn)棋盤覆蓋圖形界面,具有一定的參考價值,感興趣的小伙伴們可以參考一下

python實現(xiàn)棋盤覆蓋圖形界面,供大家參考,具體內(nèi)容如下

一、解決方案和關(guān)鍵代碼

工具: python tkinter庫

問題描述:

  在一個2^k×2^k個方格組成的棋盤中,若有一個方格與其他方格不同,則稱該方格為一特殊方格,且稱該棋盤為一個特殊棋盤.顯然特殊方格在棋盤上出現(xiàn)的位置有4^k種情形.因而對任何k≥0,有4^k種不同的特殊棋盤。
  在棋盤覆蓋問題中,要用下圖中 4 中不同形態(tài)的 L 型骨牌覆蓋一個給定的特殊棋牌上除特殊方格以外的所有方格,且任何 2 個 L 型骨牌不得重疊覆蓋。易知,在任何一個 2^k × 2^k 的棋盤中,用到的 L 型骨牌個數(shù)恰為 (4^k-1)/3 。


解決方法:遞歸與分治法

  用分治策略,可以設(shè)計解棋盤問題的一個簡捷的算法。
  當(dāng) k>0 時,將 2^k * 2^k 棋盤分割為 4 個 2^(k-1) * 2^(k-1) 子棋盤;
  特殊方格必位于 4 個較小子棋盤之一中,其余 3 個子棋盤中無特殊方格。為了將這 3 個無特殊方格的子棋盤轉(zhuǎn)化為特殊棋盤,我們可以用一個 L 型骨牌覆蓋這 3 個較小的棋盤的匯合處,如下圖所示,這 3 個子棋盤上被 L 型骨牌覆蓋的方格就成為該棋盤上的特殊方格,從而將原問題化為 4 個較小規(guī)模的棋盤覆蓋問題。遞歸的使用這種分割,直至棋盤簡化為 1x1 棋盤。

算法關(guān)鍵代碼

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)

畫棋盤關(guān)鍵代碼:

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()

二、數(shù)據(jù)測試

特殊方格坐標(biāo)為(1,1),棋盤大小為(2^2*2^2)


特殊方格坐標(biāo)為(2,2),棋盤大小為(2^3*2^3)

 

完整代碼下載鏈接點這里

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python中的支持向量機SVM的使用(附實例代碼)

    Python中的支持向量機SVM的使用(附實例代碼)

    這篇文章主要介紹了Python中的支持向量機SVM的使用(附實例代碼),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • tensorflow 實現(xiàn)自定義梯度反向傳播代碼

    tensorflow 實現(xiàn)自定義梯度反向傳播代碼

    今天小編就為大家分享一篇tensorflow 實現(xiàn)自定義梯度反向傳播代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python利用標(biāo)簽實現(xiàn)清理微信好友的自動化腳本

    Python利用標(biāo)簽實現(xiàn)清理微信好友的自動化腳本

    微信已經(jīng)成為我們?nèi)粘I钪胁豢苫蛉钡纳缃还ぞ?隨著使用時間的增長,我們的微信好友列表可能會變得越來越臃腫,所以本文為大家準(zhǔn)備了通過標(biāo)簽清理微信好友的Python自動化腳本,希望對大家有所幫助
    2024-12-12
  • Python獲取文件夾下的所有文件路徑小結(jié)

    Python獲取文件夾下的所有文件路徑小結(jié)

    在Python編程過程中,需要獲取某一個文件目錄下的所有文件,或獲取文件目錄下的所有指定后綴名的文件等,本文主要介紹了Python獲取文件夾下的所有文件路徑,感興趣的可以了解一下
    2023-10-10
  • python zip()函數(shù)的使用示例

    python zip()函數(shù)的使用示例

    這篇文章主要介紹了python zip()的使用示例,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-09-09
  • Python數(shù)據(jù)可視化之Pyecharts使用詳解

    Python數(shù)據(jù)可視化之Pyecharts使用詳解

    Pyecharts是一個由百度開源的、用于生成Echarts圖表的類庫,可以用來進行數(shù)據(jù)可視化分析。本文將詳細講解一下Pyecharts的使用,需要的可以參考一下
    2022-04-04
  • python django集成cas驗證系統(tǒng)

    python django集成cas驗證系統(tǒng)

    cas是什么東西就不多說了,簡而言之就是單點登陸系統(tǒng),一處登陸,全網(wǎng)有權(quán)限的系統(tǒng)均可以訪問
    2014-07-07
  • Pandas Series如何轉(zhuǎn)換為DataFrame

    Pandas Series如何轉(zhuǎn)換為DataFrame

    這篇文章主要介紹了Pandas Series如何轉(zhuǎn)換為DataFrame問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python3之不使用第三方變量,實現(xiàn)交換兩個變量的值

    Python3之不使用第三方變量,實現(xiàn)交換兩個變量的值

    今天小編就為大家分享一篇Python3之不使用第三方變量,實現(xiàn)交換兩個變量的值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python實現(xiàn)的特征提取操作示例

    Python實現(xiàn)的特征提取操作示例

    這篇文章主要介紹了Python實現(xiàn)的特征提取操作,涉及Python基于sklearn庫的變量特征提取相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12

最新評論

新竹县| 盐源县| 富阳市| 陵川县| 子洲县| 论坛| 清河县| 蓬莱市| 西充县| 合阳县| 安化县| 五大连池市| 昌江| 新乡市| 根河市| 兴国县| 依兰县| 肥东县| 邯郸市| 湘潭市| 承德市| 六枝特区| 驻马店市| 武夷山市| 六枝特区| 大庆市| 台江县| 古交市| 三门峡市| 新河县| 广灵县| 济阳县| 正阳县| 清涧县| 闻喜县| 沂水县| 石河子市| 盖州市| 大田县| 兰溪市| 东丰县|