Example #1
0
 private void cut(List <Wire> cutWires, Wire wire)
 {
     wire.Cut = true;
     cutWires.Add(wire);
 }
Example #2
0
        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);
        }