Python绘制n×n游戏棋盘:如何交替调用水平线与垂直线函数
解决n×n游戏棋盘交替绘制水平线与垂直线的问题
你的代码目前存在两个核心问题:内部定义的绘制函数从未被调用,且缺少交替执行的循环逻辑。以下是修正后的完整实现:
修正后的代码
number_input = input("pick a value for the nxn game board ") def draw_horizline(size): print(" --- " * size) def draw_vertline(size): print(" | " * (size + 1)) def draw_gameboard(number): try: n = int(number) if n <= 0: print("invalid choice") return # 交替绘制水平线与垂直线,构建棋盘主体 for _ in range(n): draw_horizline(n) draw_vertline(n) # 绘制最后一条水平线,完成棋盘底部边框 draw_horizline(n) except ValueError: print("please enter a valid integer") draw_gameboard(number_input)
关键修改说明
- 将
draw_horizline和draw_vertline移到draw_gameboard外部,避免重复定义,提升代码可读性与效率 - 新增输入合法性校验:用
try-except捕获非数字输入,同时保留原有的正整数判断 - 核心绘制逻辑:
n×n棋盘需要n+1条水平线(上下边框+每行之间的分隔)和n条垂直线(对应n行格子)。通过循环n次,每次先调用水平线函数再调用垂直线函数,最后补充一条水平线完成底部边框,实现交替绘制的需求 - 移除多余的
print(draw_gameboard(...)),因为draw_gameboard内部已负责打印操作,原写法会输出函数返回的None
内容的提问来源于stack exchange,提问作者philomath
相关产品推荐
相关产品推荐

