Книга: Выразительный JavaScript
Населяем мир
Населяем мир
Теперь у нас есть основа для симуляции существ, больше похожих на настоящие. Мы могли бы поместить в новый мир существ из старого, но они бы просто умерли, так как у них нет свойства energy
. Давайте сделаем новых. Сначала напишем растение, которое, по сути, довольно простая форма жизни.
function Plant() {
this.energy = 3 + Math.random() * 4;
}
Plant.prototype.act = function(context) {
if (this.energy > 15) {
var space = context.find(" ");
if (space)
return {type: "reproduce", direction: space};
}
if (this.energy < 20)
return {type: "grow"};
};
Растения начинают со случайного уровня энергии от 3 до 7, чтобы они не размножались все в один ход. Когда растение достигает энергии 15, а рядом есть пустая клетка – оно размножается в неё. Если оно не может размножиться, то просто растёт, пока не достигнет энергии 20.
Теперь определим поедателя растений.
function PlantEater() {
this.energy = 20;
}
PlantEater.prototype.act = function(context) {
var space = context.find(" ");
if (this.energy > 60 && space)
return {type: "reproduce", direction: space};
var plant = context.find("*");
if (plant)
return {type: "eat", direction: plant};
if (space)
return {type: "move", direction: space};
};
Для растений будем использовать символ *
— то, что будет искать существо в поисках еды.
- 8.2. Языки программирования Виды программирований
- 1.1. Введение в объектно-ориентированное программирование
- Покупатель на крючке. Руководство по созданию продуктов, формирующих привычки
- Язык программирования Python
- Формирование платежного поручения
- Программирование на языке Пролог для искусственного интеллекта
- 4.2. Формирование концепции репутационного менеджмента
- Программируя Вселенную. Квантовый компьютер и будущее науки
- Команды и формирование культуры по инициативе сверху
- 6.7. Формирование составных целевых утверждений
- Глава 1 Предел возможностей иерархии в мире перемен
- Цель текста – сформировать мнение