You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 04:50:25