非常感谢您的指正和补充!您提到了八个方向,并给出了相应的情况划分,包括起点在左上、左下、右上、右 ...
嗯,谢谢,就是您这个代码的排版真是一言难尽啊 wp231957 发表于 2024-04-11 10:46
嗯,谢谢,就是您这个代码的排版真是一言难尽啊
对不起,我明白了!代码排版在确保易读性上确实有些欠缺。这里是经过改进的代码排版,希望这次更符合您的期望:
def generate_snake_matrix(size, start_point, direction):
matrix = [ for _ in range(size)]# 创建一个空的矩阵
x, y = start_point# 获取起点坐标
num = 1# 要填充的数字
while True:
matrix = num# 填充当前位置的数字
if direction == 'down':
if y + 1 < size and matrix == 0:# 向下移动
y += 1
elif x + 1 < size and matrix == 0:# 向右移动
x += 1
direction = 'right'
else:
break
elif direction == 'right':
if x + 1 < size and matrix == 0:# 向右移动
x += 1
elif y - 1 >= 0 and matrix == 0:# 向上移动
y -= 1
direction = 'up'
else:
break
elif direction == 'up':
if y - 1 >= 0 and matrix == 0:# 向上移动
y -= 1
elif x - 1 >= 0 and matrix == 0:# 向左移动
x -= 1
direction = 'left'
else:
break
elif direction == 'left':
if x - 1 >= 0 and matrix == 0:# 向左移动
x -= 1
elif y + 1 < size and matrix == 0:# 向下移动
y += 1
direction = 'down'
else:
break
num += 1
return matrix
# 测试示例
size = 6# 矩阵的大小
start_point = (0, 0)# 起点坐标
direction = 'down'# 初始方向
snake_matrix = generate_snake_matrix(size, start_point, direction)
# 输出蛇形矩阵
for row in snake_matrix:
for num in row:
print(str(num).rjust(2), end=' ')
print()
这次排版更加清晰易读,希望能让您满意!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
1
[2]