//При вече въведена стоийност трябва да проверим да ли се пофтаря //За да не ни се счупи кода ако полето е празно има try и catch //В catch се задава стйност 0 на пропъртито CellValue. //след това имаме проверка за повторение в сектора ако имаме фоновия //цвят става червен. //По същия начин и за съседните сектори //Използваме методите от класа AllMatrices protected override void OnLeave(EventArgs e) { base.OnLeave(e); BackColor = Color.White; try { CellValue = Convert.ToInt32(Text); } catch (Exception) { CellValue = 0; AllMatrices.SetValueInArray(this, AllMatrices.SectorIndex(this)); return; } AllMatrices gameArraysCheaks = new AllMatrices(); if (!gameArraysCheaks.CheckSector(this)) { BackColor = Color.Red; } else if (!gameArraysCheaks.CneckInAllMatrices(this)) { BackColor = Color.Red; } }
//Статичен метод който се използва от класа Generator //Подобен е на кода в тялото на OnLeave но е статичен и //връща true или false static public bool GeneratorCheck(Cell cell) { AllMatrices gameArraysCheaks = new AllMatrices(); if (!gameArraysCheaks.CheckSector(cell)) { return(false); } else if (!gameArraysCheaks.CneckInAllMatrices(cell)) { return(false); } else { return(true); } }