python版棋盘覆盖问题核心代码
2013-10-05 14:20
573 查看
tile = 0#L型骨牌号 t = 0 Board = [] #tr:棋盘左上角方格的行号 #tc:棋盘左上角方格的列号 #dr:特殊方格的行号 #dc:特殊方格的列号 #size:棋盘的规格 def chessBoard(tr,tc,dr,dc,size): if(size == 1): return t = tile + 1 s = size /2 #覆盖棋牌左上角子棋盘 if(dr < tr + s and dc < tc + s): #特殊方格在此棋盘中 chessBoard(tr,tc,dr,dc,s) else: #用t号L型骨牌覆盖右下角 Board[tr + s -1][tc + s -1] = t #覆盖剩余棋盘 chessBoard(tr,tc,tr+s-1,tc+s-1,s) #覆盖右上角子棋盘 if(dr < tr + s and dc >= tc + s): #特殊方格在此棋盘中 chessBoard(tr,tc+s,dr,dc,s) else: #用t号L型骨牌覆盖左下角 Board[tr+s-1][tc+s] = t #覆盖剩余棋盘 chessBoard(tr,tc+s,tr+s-1,tc+s) #覆盖左下角棋盘 if(dr >= tr +s and dc < tc+s): #特殊方格在此棋盘中 chessBoard(tr+s,tc,dr,dc,s) else: #用t号L型骨牌覆盖右上角 Board[tr+s][tc+s-1] = t #覆盖剩余棋盘 chessBoard(tr+s,tc,tr+s,tc+s-1) #覆盖右下角棋盘 if(dr >= tr + s and dc >= tc + s): #特殊方格在此棋盘中 chessBoard(tr+s,tc+s,dr,dc,s) else: #用t号L型骨牌覆盖右下角 Board[tr+s,tc+s] = t #覆盖剩余棋盘 chessBoard(tr+s,tc+s,tr+s,tc+s,s)
相关文章推荐
- 分治算法之 棋盘覆盖问题(完整代码实现)
- 棋盘的完美覆盖问题,c++代码实现
- 棋盘的完美覆盖问题,c++代码实现
- 棋盘的完美覆盖问题,c++代码实现
- Python:棋盘覆盖问题
- 棋盘覆盖问题python3实现
- 分治算法---棋盘覆盖问题java代码实现
- python机器学习-预测分析核心算法3-2代码在python3下运行遇到的一些问题
- 棋盘覆盖问题C++代码
- java解决棋盘覆盖问题
- 算法竞赛入门经典 8.3.1棋盘覆盖问题
- 棋盘覆盖问题(递归与分治,紫书P229)
- 在MyEclipse中写python代码的中文注释乱码问题
- 棋盘覆盖问题(分治)
- nyoj.45 棋盘覆盖【大数问题】 2015/03/09
- [分治,递归]棋盘覆盖问题
- JAVA代码—算法基础:马走8×8棋盘问题
- python代码中碰到的问题及解决
- 高精度计算模板——棋盘覆盖问题
- 递归分治解决棋盘覆盖问题