private bool TrySolve() { for (var i = 0; i < 9; i++) { for (var k = 0; k < 9; k++) { if (_board[i, k] != '.') { continue; } OnCharacterChanged?.Invoke(i, k); for (var j = 1; j < 10; j++) { var c = char.Parse($"{j}"); if (IsSquareCompliant(c, i, k) && IsRowCompliant(c, k, i) && IsColumnCompliant(c, i, k)) { _board[i, k] = c; if (!TrySolve()) { _board[i, k] = '.'; } } } if (_board[i, k] == '.') { return(false); } } } return(true); }
private void Form1_Load(object sender, EventArgs e) { loadedCharacters = new List <Character>(); uiStats = new List <UIStat>(); onCharacterChanged += UiRefresh; onCharacterChanged += SetBoxes; var path = System.IO.Path.Combine(System.Environment.CurrentDirectory, "Characters"); var files = Directory.GetFiles(path); foreach (var f in files) { var jsonstring = File.ReadAllText(f); var character = JsonConvert.DeserializeObject <Character>(jsonstring); loadedCharacters.Add(character); } foreach (var c in loadedCharacters) { listBox1.Items.Add(c.Name); } ///-----------GROUP TEXTBOXES/// var hpgroup = new UIValueGrowthMax { ValueRef = hpBox, GrowthRef = hpGrowthBox, MaxRef = maxHpBox }; var strgroup = new UIValueGrowthMax { ValueRef = strBox, GrowthRef = strGrowthBox, MaxRef = maxStrBox }; var maggroup = new UIValueGrowthMax { ValueRef = magBox, GrowthRef = magGrowthBox, MaxRef = maxMagBox }; var skillgroup = new UIValueGrowthMax { ValueRef = skillBox, GrowthRef = skillGrowthBox, MaxRef = maxSkillBox }; var spdgroup = new UIValueGrowthMax { ValueRef = spdBox, GrowthRef = spdGrowthBox, MaxRef = maxSpdBox }; var luckgroup = new UIValueGrowthMax { ValueRef = luckBox, GrowthRef = luckGrowthBox, MaxRef = maxLuckBox }; var defgroup = new UIValueGrowthMax { ValueRef = defBox, GrowthRef = defGrowthBox, MaxRef = maxDefBox }; var resgroup = new UIValueGrowthMax { ValueRef = resBox, GrowthRef = resGrowthBox, MaxRef = maxResBox }; ///------------STUFF UI IN A LIST///// uiStats.Add(new UIStat(new Stat("HP", 0, 0, 0, ""), hpgroup)); uiStats.Add(new UIStat(new Stat("Str", 0, 0, 0, ""), strgroup)); uiStats.Add(new UIStat(new Stat("Mag", 0, 0, 0, ""), maggroup)); uiStats.Add(new UIStat(new Stat("Skill", 0, 0, 0, ""), skillgroup)); uiStats.Add(new UIStat(new Stat("Spd", 0, 0, 0, ""), spdgroup)); uiStats.Add(new UIStat(new Stat("Luck", 0, 0, 0, ""), luckgroup)); uiStats.Add(new UIStat(new Stat("Def", 0, 0, 0, ""), defgroup)); uiStats.Add(new UIStat(new Stat("Res", 0, 0, 0, ""), resgroup)); if (loadedCharacters.Capacity == 0) { var one = new Character("Default"); listBox1.Items.Add(one.Name); loadedCharacters.Add(one); listBox1.SelectedIndex = CurrentIndex; } CurrentCharacter = loadedCharacters[CurrentIndex]; listBox1.SelectedIndexChanged += new System.EventHandler(Listchanged); }