Class LinearPriceCalculation

  • All Implemented Interfaces:
    IPriceCalculation

    final class LinearPriceCalculation
    extends java.lang.Object
    implements IPriceCalculation
    The most simple form of the price calculation algorithm.
    Author:
    Andi Hotz, (c) Sahits GmbH, 2011 Created on Nov 27, 2011
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      double computePrice​(int min, int max, int available, int saturation, int productionRate, IPopulationStructure pop, ECityState state)
      Compute the price for one item of the ware.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • LinearPriceCalculation

        LinearPriceCalculation()
    • Method Detail

      • computePrice

        public double computePrice​(int min,
                                   int max,
                                   int available,
                                   int saturation,
                                   int productionRate,
                                   IPopulationStructure pop,
                                   ECityState state)
        Compute the price for one item of the ware. Though the price is only handled in further computation as integer value, this method returns its value as double so this condition can be tested:
        The higher the available amount (but still below the saturation value) the smaller (strictly) the returned value.
        For different starting values:
        If the starting value b is below starting point a the whole curve of b is below (not necessary strictly) the curve of a. The curve is continues between 0 (inclusive) and infinity.
        This implementation uses a linear function between the max value at 0 and the min value at saturation. This however means that the function is not continuous at the point of the saturation.
        Specified by:
        computePrice in interface IPriceCalculation
        Parameters:
        min - the lowest possible price (0 exclusive)
        max - the highest possible price
        available - amount of wares that are available in the market
        saturation - amount of items at which the market is saturated (no further price change
        productionRate - amount the city can produce within a week
        pop - population structure that may have an influence on the calculated price
        state - state of the city
        Returns:
        price for one item sold