Beispiel #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Animal"/> class.
 /// </summary>
 /// <param name="settings">
 /// The settings.
 /// </param>
 /// <param name="field">
 /// The field.
 /// </param>
 protected Animal(IWatorSettings settings, WatorField field)
 {
     this.Settings         = settings;
     this.IsMoved          = false;
     this.Lifetime         = 0;
     this.Field            = field;
     this.FoundDirections  = new List <Direction>();
     this.AnimalRandomizer = new Random(DateTime.Now.Millisecond * field.Position.X);
 }
Beispiel #2
0
        /// <summary>
        /// Initializes the wator world.
        /// </summary>
        /// <param name="settings">
        /// The settings.
        /// </param>
        private void InitializeWatorWorld(IWatorSettings settings)
        {
            currentSharkPopluation = settings.InitialSharkPopulation;
            currentFishPopluation  = settings.InitialFishPopulation;
            this.IsEndReached      = false;
            this.Round             = 0;

            this.WatorWorld = new WatorWorld(settings);
        }
Beispiel #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ImageCreator{T}"/> class.
        /// Initializes a new instance of the <see cref="ImageCreator"/> class.
        /// </summary>
        /// <param name="settings">
        /// The settings.
        /// </param>
        public ImageCreator(IWatorSettings settings)
        {
            this.settings = settings;
            this.InitializeImageFormat(settings);

            this.width         = settings.WorldWidth;
            this.height        = settings.WorldHeight;
            this.imageSavePath = settings.SaveFolder;

            this.InitializeObjects();
            this.InitializeThread();
        }
Beispiel #4
0
        private void InitializeImageFormat(IWatorSettings settings)
        {
            this.imageExtension = settings.ImageExtension;

            if (imageExtension.ToLower().Equals("png"))
            {
                this.imageFormat = ImageFormat.Png;
            }
            else
            {
                this.imageFormat = ImageFormat.Bmp;
            }
        }
Beispiel #5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="WatorWorld"/> class.
        /// </summary>
        /// <param name="settings">
        /// The settings.
        /// </param>
        /// <exception cref="System.ArgumentNullException">
        /// settings
        /// </exception>
        public WatorWorld(IWatorSettings settings)
        {
            if (settings == null)
            {
                throw new ArgumentNullException("settings");
            }

            this.Settings = settings;

            this.InitializeObjects();
            this.InitializeWorldFields();
            this.PopulateWorld();
        }
Beispiel #6
0
        /// <summary>
        /// Checks the settings.
        /// </summary>
        /// <param name="settings">
        /// The settings.
        /// </param>
        /// <exception cref="System.ArgumentOutOfRangeException">
        /// Please enter a valid Wator Fields Height!
        /// or
        /// Please enter a valid Wator Fields Width!
        /// </exception>
        private void CheckSettings(IWatorSettings settings)
        {
            if (settings.WorldHeight <= 0)
            {
                throw new ArgumentOutOfRangeException("settings", "Please enter a valid Wator Fields Height!");
            }

            if (settings.WorldWidth <= 0)
            {
                throw new ArgumentOutOfRangeException("settings", "Please enter a valid Wator Fields Width!");
            }

            //// condition for splitting world in "rows/phases" for paralellization
            // if (settings.WorldHeight % 2 != 0)
            // {
            // throw new ArgumentOutOfRangeException("settings", "Please enter a valid even number as Wator Fields Height!");
            // }

            // if ((settings.WorldHeight / (Environment.ProcessorCount * 3)) > 2)
            // {
            // throw new ArgumentOutOfRangeException("settings", "Please enter a valid even number as Wator Fields Height!");
            // }
        }
Beispiel #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Shark"/> class.
 /// </summary>
 /// <param name="settings">
 /// The settings.
 /// </param>
 /// <param name="field">
 /// The field.
 /// </param>
 public Shark(IWatorSettings settings, WatorField field)
     : base(settings, field)
 {
     this.Starve = 0; // "Hunger"
 }
Beispiel #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="WatorField"/> class.
 /// </summary>
 /// <param name="position">
 /// The position.
 /// </param>
 /// <param name="settings">
 /// The settings.
 /// </param>
 public WatorField(Point position, IWatorSettings settings)
 {
     this.Position = position;
     this.settings = settings;
 }
Beispiel #9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Fish"/> class.
 /// </summary>
 /// <param name="settings">
 /// The settings.
 /// </param>
 /// <param name="field">
 /// The field.
 /// </param>
 public Fish(IWatorSettings settings, WatorField field)
     : base(settings, field)
 {
 }