1

ボックスを描画する draw メソッドがありますが、問題はボックスの高さではなく幅のみを描画することです。

コード スニペットを次に示します。

class ColoredBox : Box
{
    protected ConsoleColor backColor;

    public ColoredBox(Point p, int width, int height, ConsoleColor backColor)
        : base(p, width, height)

    {
        this.backColor = backColor;
    }

    public virtual void Draw()
    {
        for (int j = 0; j < height; j++)
        {
            Console.SetCursorPosition(p.X, p.Y);
            Console.BackgroundColor = backColor;
            for (int i = 0; i <= width; i++)
                Console.Write(' ');
    }
}

問題はDraw()方法にあり、印刷できないようです。この単純な問題を修正するにはどうすればよいですか?

4

1 に答える 1

1

j次の行のカーソル位置を設定するときに使用していません。コードは次のようになります。

public virtual void Draw()
{
    for (int j = 0; j < height; j++)
    {
        Console.SetCursorPosition(p.X, p.Y + j);
        Console.BackgroundColor = backColor;
        for (int i = 0; i <= width; i++)
            Console.Write(' ');
    }
}
于 2013-02-11T10:57:08.490 に答える