您的位置:首页 > 编程语言 > Python开发

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: