private void cut(List <Wire> cutWires, Wire wire) { wire.Cut = true; cutWires.Add(wire); }
public bool cutAll() { List <Wire> cutWires = new List <Wire>(); cut(cutWires, wires[0]); for (int i = 1; i < wires.Count; i++) { Wire last = wires[i - 1]; Wire current = wires[i]; switch (last.Color) { case Color.White: if (!Color.White.Equals(current.Color) && !Color.Black.Equals(current.Color)) { cut(cutWires, current); } break; case Color.Red: if (Color.Green.Equals(current.Color)) { cut(cutWires, current); } break; case Color.Black: if (!Color.White.Equals(current.Color) && !Color.Green.Equals(current.Color) && !Color.Orange.Equals(current.Color)) { cut(cutWires, current); } break; case Color.Orange: if (Color.Red.Equals(current.Color) || Color.Black.Equals(current.Color)) { cut(cutWires, current); } break; case Color.Green: if (Color.Orange.Equals(current.Color) || Color.White.Equals(current.Color)) { cut(cutWires, current); } break; case Color.Purple: if (!Color.Purple.Equals(current.Color) && !Color.Green.Equals(current.Color) && !Color.Orange.Equals(current.Color) && !Color.White.Equals(current.Color)) { cut(cutWires, current); } break; } } if (cutWires != null && cutWires.Count == wires.Count) { return(true); } return(false); }