让用户编辑一些值,但不是全部

时间:2014-06-28 13:26:54

标签: c#

我正在编写一个数独程序,我希望用户编辑数组中的某些值,但不是已经存在的值。如何初始化数组?

3 个答案:

答案 0 :(得分:2)

解决问题的最简单方法是使用2个多维数组,第一个用于保存值,第二个用于检查用户是否可以编辑某个单元格。

int[,] ValueArray= new int[4,4];
boolean[,] EditedArray= new boolean[4,4];

答案 1 :(得分:0)

您的sudoku用户编辑您的UI,而不是您的阵列。当关联数据应该是只读时,将UI元素设置为只读。

答案 2 :(得分:0)

您可以使用多种解决方案解决您的问题,所有这些解决方案都以相同的原则进行转发 - >将您的号码与布尔值相结合。

你可以用一个类写下来:

public class SudokuCell
{
    public bool IsEditable { get; set; }
    private int _value;
    public int Value 
    { 
        get { return _value; }
        set { if (IsEditable) _value = value; }
}

或结构:

public struct SudokuCell
{
    public bool IsEditable;
    public int Value;
}

并拥有ListArray SudokuCell个可用作数据结构的Tuple,或者您可以使用lazier方法并使用List<Tuple<int, bool>> sudokuCells = new List<Tuple<int,bool>>(); 将其写下来:

bool

然后,只要您想要更改该值,就可以检查相应的{{1}},并立即知道您是否能够或无法更改它(假设您在初始化数独时设置它)