python 棋盘拼接问题

#L形砖,棋牌覆盖问题
def cover(board,lab=1,top=0,left=0,side=None):
	if side is None:side=len(board)
	s=side//2
	offsets=(0,-1),(side-1,0)
	for dy_outer,dy_inner in offsets:
		for dx_outer,dx_inner in offsets:
			if not board[top+dy_outer][left+dx_outer]:
				board[top+s+dy_inner][left+s+dx_inner]=lab
	lab+=1
	if s>1:
		for dy in [0,s]:
			for dx in [0,s]:
				lab=cover(board,lab,top+dy,left+dx,s)
	return lab

if __name__ == '__main__':

	board=[[0]*8 for i in range(8)]
	board[7][7]=-1
	cover(board)
	for row in board:
		print "%3i"*8 %tuple(row)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值