我正在编写一个数独程序,我希望用户编辑数组中的某些值,但不是已经存在的值。如何初始化数组?
答案 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;
}
并拥有List
或Array
SudokuCell
个可用作数据结构的Tuple
,或者您可以使用lazier方法并使用List<Tuple<int, bool>> sudokuCells = new List<Tuple<int,bool>>();
将其写下来:
bool
然后,只要您想要更改该值,就可以检查相应的{{1}},并立即知道您是否能够或无法更改它(假设您在初始化数独时设置它)