# coding:utf-8
# 定義數組寬度爲2的幾次方
k = 2
# 棋盤寬度
size1 = pow(2, k)
# L形塊的初始值
mark = 0
# table初始化
table = [[-1 for x in range(size1)] for y in range(size1)]
def chess(tr, tc, pr, pc, size):
global mark
global table
if size == 1:
return
mark += 1
count = mark
half = size // 2
if pr < tr + half and pc < tc + half:
chess(tr, tc, pr, pc, half)
else:
table[tr + half - 1][tc + half - 1] = count
chess(tr, tc, tr + half - 1, tc + half - 1, half)
if pr < tr + half and pc >= tc + half:
chess(tr, tc + half, pr, pc, half)
else:
table[tr + half - 1][tc + half] = count
chess(tr, tc + half, tr + half - 1, tc + half, half)
if pr >= tr + half and pc < tc + half:
chess(tr + half, tc, pr, pc, half)
else:
table[tr + half][tc + half - 1] = count
chess(tr + half, tc, tr + half, tc + half - 1, half)
if pr >= tr + half and pc >= tc + half:
chess(tr + half, tc + half, pr, pc, half)
else:
table[tr + half][tc + half] = count
chess(tr + half, tc + half, tr + half, tc + half, half)
# 棋盤展示
def show(t):
n = len(t)
for i in range(n):
for j in range(n):
print "% 4d" % t[i][j],
print
chess(0, 0, 1, 1, size1)
show(table)
python實現棋盤覆蓋算法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.