Beispiel #1
0
        private BridgeProperty GetLongestBridges(Bridge bridge)
        {
            //List<Bridge> subBridges = new List<Bridge>();
            //bool wasConnectionMade = false;

            //foreach( Component component in components ) {
            //	if( bridge.Connect( component ) ) {
            //		wasConnectionMade = true;

            //		subBridges.Add( bridge );

            //		bridge.DisconnectLast();
            //	}
            //}

            //if( wasConnectionMade ) {
            //	return subBridges;
            //}

            //List<Bridge> bridges = new List<Bridge>();
            //bridges.Add( bridge );
            //return bridges;

            BridgeProperty bestBridgeProperties = new BridgeProperty(bridge.GetLength(), bridge.GetStrength());

            foreach (Component component in components)
            {
                if (bridge.Connect(component))
                {
                    BridgeProperty newBridgeProperties = GetLongestBridges(bridge);

                    if (newBridgeProperties.length > bestBridgeProperties.length ||
                        (newBridgeProperties.length == bestBridgeProperties.length && newBridgeProperties.strength > bestBridgeProperties.strength))
                    {
                        bestBridgeProperties = newBridgeProperties;
                    }

                    bridge.DisconnectLast();
                }
            }

            return(bestBridgeProperties);
        }
Beispiel #2
0
        private int GetStrengthOfStrongestLongestBridge(Bridge bridge)
        {
            BridgeProperty longestBridgeProperties = GetLongestBridges(bridge);

            return(longestBridgeProperties.strength);
        }