gpt4 book ai didi

c# - Connect 4 C#(如何绘制网格)

转载 作者:太空宇宙 更新时间:2023-11-03 11:49:38 27 4
gpt4 key购买 nike

我已经编写了大部分代码并且有几个游戏类。我现在坚持的一点是如何绘制实际的 Connect 4 网格。谁能告诉我这个 for 循环有什么问题?我没有收到任何错误,但没有出现网格。我正在使用 C#。

private void Drawgrid() 
{
Brush b = Brushes.Black;
Pen p = Pens.Black;
for (int xCoor = XStart, col = 0; xCoor < XStart + ColMax * DiscSpace; xCoor += DiscSpace, col++)
{
// x coordinate beginning; while the x coordinate is smaller than the max column size, times it by
// the space between each disc and then add the x coord to the disc space in order to create a new circle.
for (int yCoor = YStart, row = RowMax - 1; yCoor < YStart + RowMax * DiscScale; yCoor += DiscScale, row--)
{
switch (Grid.State[row, col])
{
case GameGrid.Gridvalues.Red:
b = Brushes.Red;
break;
case GameGrid.Gridvalues.Yellow:
b = Brushes.Yellow;
break;
case GameGrid.Gridvalues.None:
b = Brushes.Aqua;
break;
}
}
MainDisplay.DrawEllipse(p, xCoor, yCoor, 50, 50);
MainDisplay.FillEllipse(b, xCoor, yCoor, 50, 50);
}
Invalidate();
}

最佳答案

Drawgrid() 中的代码需要在窗口重绘时执行。

Invalidate() 调用告诉应用程序它需要重绘窗口内容(它会触发窗口的重绘)。此代码(Invalidate() 调用除外)应该在您重写的 OnPaint() 方法中,否则此代码绘制的任何内容都将立即被当您调用 Invalidate() 时,OnPaint() 中的默认绘图代码(默认情况下,它可能会绘制白色背景)。

protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;

// (your painting code here...)
}

关于c# - Connect 4 C#(如何绘制网格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2427546/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com