public string AttackMachines(string attackingMachineName, string defendingMachineName)
        {
            BaseMachine attackingMachine = (BaseMachine)this.machines.FirstOrDefault(x => x.Name == attackingMachineName);

            if (attackingMachine == null)
            {
                return($"Machine {attackingMachineName} could not be found");
            }

            if (attackingMachine.HealthPoints == 0)
            {
                return($"Dead machine {attackingMachineName} cannot attack or be attacked");
            }

            BaseMachine defendingMachine = (BaseMachine)this.machines.FirstOrDefault(x => x.Name == defendingMachineName);

            if (defendingMachine == null)
            {
                return($"Machine {defendingMachineName} could not be found");
            }

            if (defendingMachine.HealthPoints == 0)
            {
                return($"Dead machine {defendingMachineName} cannot attack or be attacked");
            }

            attackingMachine.Attack(defendingMachine);

            return($"Machine {defendingMachineName} was attacked by machine {attackingMachineName} - current health: {defendingMachine.HealthPoints:F2}");
        }