Cybernetics Wiki
Advertisement

Содержание

Класс - Organism[]

Класс Organism (Организм) является базовым классом для классов Animal/Plant (Животное/Растение). Он содержит функциональные возможности, общие для классов Animal и Plant.


Метод - Organism.Void BeginReproduction(Byte[])[]

Эта функция используется для передачи существу команды воспроизводства. Для начала процесса воспроизводства требуется соблюдение определенных условий. В противном случае генерируется исключение. Наиболее простым способом убедиться в соблюдении необходимых условий является проверка свойства CanReproduce.

При многократном вызове этого метода в рамках одного хода будет выполнен только последний вызов. Этот метод является также асинхронным, и при фактическом рождении существа будет запущено событие ReproduceCompletedEvent. Время между началом и завершением составляет 10 временных интервалов.

Параметры:

  • dna - Байтовый массив, передаваемый детенышу. Может быть любой информацией, которую необходимо передать детенышу. Байтовый массив усечен до 8000 байт.

Исключения:

  • AlreadyReproducingException Генерируется, если существо уже находится в процессе воспроизводства.
  • NotMatureException Генерируется, если существо производит попытку воспроизводства до достижения взрослого состояния.
  • NotEnoughEnergyException Генерируется, если существу недостаточно энергии для начала процесса воспроизводства.
  • NotReadyToReproduceException Генерируется, если создаваемое существо еще не готово к воспроизводству, потому что не истекло положенное число временных интервалов.


Метод - Organism.Double DistanceTo(OrganismState)[]

Вычисляет линейное расстояние между данным существом и другим существом, используя разные API, определенные классом Vector.

Параметры:

  • organismState - Объект OrganismState используется для расчета линейного расстояния между данным существом и другим существом.

Возвращаемое значение: System.Double, представляющее линейное расстояние между данным существом и другим существом.


Метод - Organism.Void WriteTrace(Object, Object, Object)[]

Создает трассировочные метки в окне трассировки Terrarium для отладки. Операции трассировки занимают *очень* мало времени, если не проводится их мониторинг. Это примерно 12 нсек на вызов. Для соблюдения этого требования производительности существует несколько переопределений, выполняющихся для параметров переменной, вместо одного параметра аргумента переменной.

Параметры:

  • item1 Объект, содержащий информацию для окна трассировки (Trace Window). Для объекта будет вызван ToString ().
  • item2 Объект, содержащий информацию для окна трассировки. Для объекта будет вызван ToString ().
  • item3 Объект, содержащий информацию для окна трассировки. Для объекта будет вызван ToString ().

Метод - Organism.Void WriteTrace(Object, Object, Object, Object)[]

Создает трассировочные метки в окне трассировки Terrarium для отладки. Операции трассировки занимают *очень* мало времени, если не проводится их мониторинг. Это примерно 12 нсек на вызов. Для соблюдения этого требования производительности существует несколько переопределений, выполняющихся для параметров переменной, вместо одного параметра аргумента переменной.

Параметры:

  • item1 Объект, содержащий информацию для окна трассировки. Для объекта будет вызван ToString ().
  • item2 Объект, содержащий информацию для окна трассировки. Для объекта будет вызван ToString ().
  • item3 Объект, содержащий информацию для окна трассировки. Для объекта будет вызван ToString ().
  • item4 Объект, содержащий информацию для окна трассировки. Для объекта будет вызван ToString ().

Метод - Organism.Void WriteTrace(Object)[]

Создает трассировочные метки в окне трассировки Terrarium для отладки. Операции трассировки занимают *очень* мало времени, если не проводится их мониторинг. Это примерно 12 нсек на вызов. Для соблюдения этого требования производительности существует несколько переопределений, выполняющихся для параметров переменной, вместо одного параметра аргумента переменной.

Параметры:

  • item1 Объект, содержащий информацию для окна трассировки. Для объекта будет вызван ToString ().

Метод - Organism.Void WriteTrace(Object, Object)[]

Используется для записи трассировочных меток в окне трассировки Terrarium для отладки. Операции трассировки занимают *очень* мало времени, если не проводится их мониторинг. Это примерно 12 нсек на вызов. Для соблюдения этого требования производительности существует несколько переопределений, выполняющихся для параметров переменной, вместо одного параметра аргумента переменной.

Параметры:

  • item1 Объект, содержащий информацию для окна трассировки. Для объекта будет вызван ToString ().
  • item2 Объект, содержащий информацию для окна трассировки. Для объекта будет вызван ToString ().


Свойство - Organism.Boolean CanReproduce { get; }[]

Определяет, все ли условия соблюдены для готовности данного животного к воспроизводству. Эти условия включают различную информацию о состоянии существа, например, достигло ли оно взрослого состояния, обладает ли оно достаточным количеством энергии, и не находится ли в данный момент в процессе воспроизводства.

Возвращаемое значение: True, если существо может размножаться, в противном случае - False.


Свойство - Organism.ReproduceAction CurrentReproduceAction { get; }[]

После того, как существо начало процесс воспроизводство, можно получить объект ReproduceAction, представляющий процесс воспроизводства создаваемого существа в данный момент. Этот объект можно использовать для просмотра байтового массива ДНК, который будет передан детенышу.

Возвращаемое значение Объект ReproduceAction, представляющий процесс воспроизводства существа в данный момент, а также значения, передаваемые в BeginReproduction.


Свойство - Organism.String ID { get; }[]

Уникальный GUID для организма. Используется для хранения состояния Animal/Plant при сохранении на диск, либо при передаче информации Animal/Plant детенышам во время воспроизводства.

Возвращаемое значение Значение строки, представляющее уникальный GUID или ID существа.


Свойство - Organism.Boolean IsReproducing { get; }[]

Определяет, находится ли данное существо в настоящее время в процессе воспроизводства. Процесс воспроизводства является асинхронным, поэтому потомство существа могло еще не появиться.

Возвращаемое значение True, если существо находится в состоянии воспроизводства, в противном случае – False.


Свойство - Organism.Random OrganismRandom { get; }[]

Для того, чтобы случайные действия были детерминированными, существу необходимо использовать объект Random, когда необходим случайный набор (количество) переменных в своем коде. Это полезно при выполнении отладки и дает возможность воспроизвести неправильное поведение существа.

Возвращаемое значение Объект System.Random, инициализированный классом Organism.


Свойство - Organism.Point Position { get; }[]

В мире игры местоположение каждого существа четко обозначено определенной точкой. Свойство Position можно использовать для запроса данного местоположения.

Возвращаемое значение Объект System.Drawing.Point, инициализированный к местоположению существ в игровой среде в данный момент.

Свойство - OrganismState State { get; }[]

Получение объекта OrganismState, представляющего состояние данного существа в мире. Объект OrganismState содержит все свойства, определяющие существование существ, например, Position, EnergyState, PercentInjured и другие.

Возвращаемое значение Объект OrganismState, представляющий состояние существа в данный момент.

Свойство - Organism.Int32 TurnsSkipped { get; }[]

Существо может пропустить несколько ходов, если на их выполнение требуется слишком много времени. Существует временной предел, в течение которого можно обработать каждый ход животного, и этот предел динамически рассчитывается Terrarium каждый раз при его запуске и зависит от мощности компьютера.

Чтобы просмотреть, сколько времени требуется для обработки хода существа, можно открыть окно Trace (Трассировка), отключить элемент "Show Organism Traces" (Показывать трассировку существа), после чего выбрать создаваемое существо. Обратите внимание, что это время может меняться в зависимости от мощности компьютера.

При выходе за предельное значение Terrarium определяет, сколько времени свыше предельного значения потребовалось на временной интервал, и задает это свойство. Это свойство можно просмотреть для восстановления с того момента, с которого существо пропустило определенное количество ходов. Это удобно, поскольку можно не принимать события, запущенные во время пропуска существом своего хода.

Возвращаемое значение: Значение System.Int32 для числа ходов, которое существо пропустило перед тем, как ему был назначен другой интервал времени.

Связанные классы[]

Класс - OrganismState[]

Все свойства существа, используемые игрой, находятся в этом объекте. Каждый OrganismState является постоянным, и ссылки на него делаются все время, в течение которого он требуется существу.

Этот объект представляет только состояние существа для данного хода и не обновляется динамически. Для получения самого последнего состояния других существ необходим метод LookFor.

Метод - OrganismState.Boolean IsAdjacentOrOverlapping(OrganismState)[]

Определяет, находится ли существо непосредственно рядом с другим существом или накладывается на него, путем сравнения ячеек сетки.

Параметры:

  • state 2 OrganismState существа для проверки сближения.

Возвращаемое значение: True, если существо расположено рядом или накладывается, в противном случае - False.

Метод - OrganismState.Double UpperBoundaryForEnergyState(EnergyState)[]

Возвращает количество энергии, соответствующее верхнему пределу данного EnergyState. Для определения количества энергии существа в данный момент рекомендуется использовать фактическое свойство EnergyState.

Параметры:

  • energyState Числовое значение EnergyState для количества энергии, соответствующего верхнему пределу уровня энергии.

Возвращаемое значение: System.Double, представляющее количество энергии, соответствующее верхнему пределу уровня энергии.

Свойство - OrganismState.Int32 ActualDirection { get; }[]

Определяет в градусах направление, в котором движется существо. При использовании вместе со Speed позволяет рассчитать местоположения существа в будущем.

Возвращаемое значение: System.Int32, представляющее направление перемещения существа в градусах.

Свойство - OrganismState.Int32 CellRadius { get; }[]

Определяет количество ячеек в игре, которое существо занимает на экране. Каждая ячейка сетки составляет 8 пикселов по ширине и высоте.

Возвращаемое значение: System.Int32 для ячеек сетки, занимаемых существом данных размеров.

Свойство - OrganismState.PopulationChangeReason DeathReason { get; }[]

Описывает причину смерти существа. Наиболее частыми причинами являются OldAge (старость), Starvation (голод), Killed (гибель) или Sickness (болезнь). Если существо еще не умерло, то значение будет NotDead.

Возвращаемое значение: PopulationChangeReason, описывающее причину смерти.

Свойство - EnergyState EnergyState { get; }[]

Определяет количество энергии существа в данный момент путем сравнения количества оставшейся в данный момент энергии с различными уровнями энергии.

Возвращаемое значение: Перечисление EnergyState, представляющий количество энергии существа в данный момент.

Свойство - OrganismState.Int32 FoodChunks { get; set; }[]

Определяет значение количества пищи, представляемое данным существом. Может использоваться для определения целесообразности нападения на какое-либо существо.

Возвращаемое значение: System.Int32, представляющее количество пищи, представляемое данным существом.

Свойство - OrganismState.Int32 Generation { get; }[]

В первое представление существа значение поколения будет 0. Каждый потомок существа будет отмечен поколением + 1. Это помогает определять продолжительность жизни существа.

Возвращаемое значение: System.Int32, представляющее номер поколения данного существа.

Свойство - OrganismState.Int32 GrowthWait { get; }[]

Определяет количество времени во временных интервалах игры, по прошествии которого оно сможет расти. Если существо еще не достигло взрослого состояния, а GrowthWait равно нулю, вероятно существу для роста недостаточно энергии или объема пространства. В такой ситуации необходимо принять соответствующие меры.

Возвращаемое значение: System.Int32 для количества времени во временных интервалах игры, имеющегося у существа до того, как оно начнет расти.

Свойство - OrganismState.String ID { get; }[]

Строковое число в форме GUID для уникального представления данного существа в экосистеме.

Возвращаемое значение: System.String для уникальной идентификации данного существа в экосистеме.

Свойство - OrganismState.Int32 IncubationTicks { get; }[]

Определяет количество времени во временных интервалах игры, необходимое для окончания воспроизводства. Свойство IsIncubating используется для передачи информации существу о том, что в данный момент оно осуществляет воспроизводство.

Возвращаемое значение: System.Int32, представляющее число временных интервалов, необходимых на инкубационный период.

Свойство - OrganismState.Boolean IsAlive { get; }[]

Определяет, живо ли существо или нет. Используется хищниками при поиске тел для еды.

Возвращаемое значение: True, если существо живо, в противном случае - False.

Свойство - OrganismState.Boolean IsIncubating { get; }[]

Определяет, находится ли существо в процессе воспроизводства. IncubationTicks используется для того, чтобы точно узнать, сколько времени существу осталось пребывать в инкубационном периоде.

Возвращаемое значение: True, если существо находится в процессе воспроизводства, в противном случае - False.


Свойство - OrganismState.Boolean IsMature { get; }[]

Определяет зрелость существа путем сравнения текущих размеров (радиуса) с размерами, которые оно будет иметь во взрослом состоянии.

Возвращаемое значение: True, если существо находится во взрослом состоянии, в противном случае - False.

Свойство - OrganismState.Boolean IsStopped { get; }[]

Определяет, двигается существо или полностью остановилось.

Возвращаемое значение: True, если существо двигается, в противном случае - False.


Свойство - OrganismState.Double PercentEnergy { get; }[]

Определяет десятичный процент от количества энергии, которой существо обладает в данный момент, относительно общего количества энергии, которым оно может обладать.

Возвращаемое значение: System.Double между 0 и 1, где 0 - отсутствие энергии, а 1 – максимальное значение.

Свойство - OrganismState.Double PercentLifespanRemaining { get; }[]

Определяет десятичный процент от продолжительности жизни существа на данный момент относительно общей продолжительности его жизни.

Возвращаемое значение: System.Double между 0 и 1, где 1 – только что рожденное существо, а 0 - мертвое.

Свойство - OrganismState.Point Position { get; set; }[]

Возвращает местоположение существа в данный момент в виде точечной структуры.

Возвращаемое значение: System.Drawing.Point, представляющее местоположение существа в данный момент.

Свойство - OrganismState.Int32 Radius { get; }[]

Определяет фактические размеры существа. Используется для определения того, насколько близко существо к взрослому состоянию, или при различных расчетах для нападения, защиты и перемещения.

Возвращаемое значение: System.Int32 фактических размеров существа.

Свойство - OrganismState.Boolean ReadyToReproduce { get; }[]

Определяет, готово ли существо к воспроизводству, на основании времени, истекшего с момента предыдущего воспроизводства. Для точного определения отрезка времени до воспроизводства существа воспользуйтесь ReproductionWait.

Возвращаемое значение: True, если существо готово к воспроизводству. В противном случае - False.

Свойство - OrganismState.Int32 ReproductionWait { get; }[]

Определяет количество времени во временных интервалах игры, необходимое для возобновления воспроизводства. Свойство ReadyToReproduce используется для передачи существу информации о том, что оно готово к воспроизводству.

Возвращаемое значение: System.Int32, представляющее время во временных интервалах до того, как существо сможет начать воспроизводство.

Свойство - OrganismState.ISpecies Species { get; }[]

Описывает характеристики существа с помощью интерфейса ISpecies.

Возвращаемое значение: Интерфейс ISpecies, представляющий характеристики существа.

Свойство - OrganismState.Int32 Speed { get; }[]

Определяет скорость, с которой существо перемещается. Удобно при расчете скорости, с которой хищники догоняют жертв, и скорости, с которой травоядные спасаются бегством.

Возвращаемое значение: System.Int32 скорости перемещения существа.

Свойство - OrganismState.Double StoredEnergy { get; set; }[]

Определяет количество энергии, оставшееся у существа. Используется для расчета количества энергии существа.

Возвращаемое значение: System.Double, представляющее количество энергии, оставшееся у данного существа.

Свойство - OrganismState.Int32 TickAge { get; }[]

Представляет возраст существа во временных интервалах игры. Как только существо достигает TickAge, совпадающего с его LifeSpan (продолжительность жизни), оно умирает от PopulationChangeReason.OldAge.

Возвращаемое значение: System.Int32, представляющее возраст существа во временных интервалах игры.

Перечисление - EnergyState[]

Содержит различные возможные уровни энергии, определенные для существа, от состояния Full до Dead. Уровень Normal представляет оптимальный уровень энергии для большинства существ.

Значения:

  • Dead - В этой точке существо не имеет запаса энергии для поддержания жизни. Существо, находящееся в таком состоянии, погибает от голода.
  • Deterioration - У существа маленький запас энергии, и скоро оно погибнет от голода. Дойдя до этой точки, существо должно как можно быстрее найти пищу.
  • Full - Существо обладает чрезмерным количеством энергии и уже не может есть. Такое состояние не поддерживается в течение долгого времени, и скоро уровень энергии опускается до нормального.
  • Hungry - Уровень энергии существа начинает понижаться. В этой точке большинству существ необходимо начать искать пищу (если они не начали этого раньше). Любое травоядное, энергия которого находится на уровне Hungry или ниже, склонно к беспричинным нападениям на других существ.
  • Normal - Это является желательным уровнем энергии для большинства существ. В этой точке существа могут восстанавливаться, расти и размножаться. В этой точке уровень энергии довольно высок, однако возможно дальнейший прием пищи и соответственное повышение уровня энергии.

См. также[]

Advertisement