使用Windows窗体在网格上显示的2D数组

时间:2016-02-24 12:08:59

标签: c# winforms

我正在尝试使用c#中的Windows窗体编写战舰游戏,我的想法是使用带有我的船只和尺寸的二维阵列,然后以某种方式将其显示在网格上(网格内部是按钮)

我已经想出如何通过使用发送器来获取按钮的位置等,然后能够更改它们的颜色但是我需要能够将我的2d阵列与船舶“附加”到如果您有任何代码向我展示如何做到这一点,那么网格然后将用于船只的按钮更改为用户的灰色。

2 个答案:

答案 0 :(得分:0)

您可以通过将数组映射到网格中的单元格来完成此操作。

假设每个单元格的编号从左上角到右下角,您可以根据单元格编号索引到数组。

可以在按钮的Tag属性中设置单元格编号。

答案 1 :(得分:0)

这可能不是最佳解决方案,但是:

您是否考虑过拥有一系列对象,例如

public class BattleCell{
    public Button HitButton{get;set;}
    public int Row{get;set;}
    public int Column{get;set;}
    public bool IsBombed{get;set;}
    public bool IsHit{get;set;}
}

一般的想法是你创建一个“单元格”的2D数组,其中包含要按下和修改的按钮。您可以以编程方式将按钮放在网格上。然后,您可以完全控制该单元格的其他属性。

然后你会像这样构建一个二维矩阵

cells = new BattleCell[10, 10];

并用相关对象填充