public void MoveDown(DominoColor color) { int index = IndexOf(color); int anzeigeindex = Anzeigeindizes[index]; if (anzeigeindex == Anzeigeindizes.Max()) { throw new InvalidOperationException("Die Farbe ist bereits ganz unten"); } int position_neuer_index = Anzeigeindizes.IndexOf(anzeigeindex + 1); Anzeigeindizes[position_neuer_index]--; Anzeigeindizes[index]++; }
public void MoveDown(DominoColor color) { int index = IndexOf(color); int anzeigeindex = Anzeigeindizes[index]; int nextLarger = GetNextLargerIndex(Anzeigeindizes, anzeigeindex); if (nextLarger == -1) { throw new InvalidOperationException("Die Farbe ist bereits ganz unten"); } // swap the two indices Anzeigeindizes[index] = Anzeigeindizes[nextLarger]; Anzeigeindizes[nextLarger] = anzeigeindex; }
public void Add(DominoColor color, int index = -1) { colors.Add(color); Anzeigeindizes.Add((Anzeigeindizes.Count == 0) ? 0 : Anzeigeindizes.Max() + 1); int lastIndex = int.MaxValue; while (true) { var currentIndex = SortedRepresentation.ToList().IndexOf(color); if (currentIndex <= index + 1 || currentIndex == lastIndex || currentIndex < 0 || index < 0) { break; } MoveUp(color); } }
public void Add(DominoColor color) { colors.Add(color); Anzeigeindizes.Add((Anzeigeindizes.Count == 0) ? 0 : Anzeigeindizes.Max() + 1); }
public int IndexOf(DominoColor color) { return(colors.IndexOf(color)); }