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)