/// <summary> /// Set all cases from a set of lines /// </summary> /// <param name="lines">Enumerable of strings, each string being a row</param> public void InitializeCases(IEnumerable<string> lines ) { int count = Symbols.Count(); Cases = new Case[count, count]; for (int i = 0; i < count; i++) { for (int j = 0; j < count; j++) { Cases[i,j] = new Case(lines.ElementAt(i).ElementAt(j)); } } }
/// <summary> /// Init all cases with empty value /// </summary> public void InitializeCases() { Cases= new Case[Size, Size]; for (int i = 0; i < Size; i++) { for (int j = 0; j < Size; j++) { Cases[i,j] = new Case(Case.EmptyCase); } } }
/// <summary> /// Create a case view in a specific location in the grid /// </summary> /// <param name="case">Case object where value is retrieved</param> /// <param name="i">Row index</param> /// <param name="j">Column index</param> /// <param name="regionSize">The size of region side, for calculating purposes</param> /// <returns>Case view object</returns> private FrameworkElement CreateCaseView(Case @case, int i, int j, int regionSize) { int regionNb = ((i/regionSize)*regionSize) + (j/regionSize); Border border = new Border { BorderBrush = Brushes.Black, BorderThickness = new Thickness(1) }; if ((regionSize%2 == 0 && (((regionNb/regionSize)%2 == 0 && regionNb%2 == 0) || ((regionNb/regionSize)%2 == 1 && regionNb%2 == 1))) || (regionSize % 2 == 1 && (((regionNb / regionSize) % 2 == 0 && regionNb % 2 == 0) || (regionNb/regionSize)%2 ==1 && regionNb%2 == 0))) border.Background = Brushes.LightGray; string text = (@case.Value.Equals(Case.EmptyCase) ? "" : @case.Value.ToString()); border.Child = new TextBlock() { Text = text, TextAlignment = TextAlignment.Center, VerticalAlignment = VerticalAlignment.Center }; Grid.SetColumn(border, j); Grid.SetRow(border, i); return border; }