wp231957 发表于 2024-4-11 10:46:32

FishC 发表于 2024-4-11 10:45
非常感谢您的指正和补充!您提到了八个方向,并给出了相应的情况划分,包括起点在左上、左下、右上、右 ...

嗯,谢谢,就是您这个代码的排版真是一言难尽啊

FishC 发表于 2024-4-11 10:48:57

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]
查看完整版本: 如何输出蛇形矩阵