JSFiddle - React, Tailwind, and code Playground
by certainlyakey
JavaScript
var planetList = [];
function getPlanetPositionByName(planetName) {
for (var i=0;i<planetList.length;i++) {
if (planetList[i].name === planetName) {
return planetList[i].position;
}
}
}
function getPlanetNameByPosition(givenPosition) {
for (var i=0;i<planetList.length;i++) {
result = planetList[i].position;
if (comparePositions(planetList[i].position,givenPosition)) {
result = 'Планета ' + planetList[i].name + ' (' + planetList[i].position + ')';
break;
}
}
return result;
}
function comparePositions(first,second) {
positionArrayEqual = false;
for (var n=0; n<2; n++) {
if (first[n] == second[n]) {
positionArrayEqual = true;
} else {
positionArrayEqual = false;
break;
}
}
if (positionArrayEqual) {return true;}
else {return false;}
}
/**
* Создает экземпляр космического корабля.
* @name Vessel
* @param {String} name Название корабля.
* @param {Number}[] position Местоположение корабля.
* @param {Number} capacity Грузоподъемность корабля.
*/
function Vessel(name, position, capacity) {
var vessel = this;
vessel.name = name;
vessel.position = position;
vessel.capacity = capacity;
vessel.load = 0;
vessel.markup = $('<div class="vessel"><output class="capacity"></output><output class="load"></output></div>');
this.setPosition = function(position) {
var x = position[0];
var y = position[1];
vessel.position = [x,y];
}
this.initialize = function() {
vessel.setPosition(vessel.position);
};
vessel.initialize();
}
/**
* Выводит текущее состояние корабля: имя, местоположение, доступную грузоподъемность.
* @example
* vessel.report(); // Грузовой корабль. Местоположение: Земля. Товаров нет.
* @example
* vessel.report(); // Грузовой корабль. Местоположение: 50,20. Груз: 200т.
* @name Vessel.report
*/
Vessel.prototype.report = function () {
var sep = '. ';
var namePrefix = 'Корабль "';
var nameSuffix = '"';
var locationLabel = 'Местоположение: ';
var goodsMessage = '';
if (this.load > 0)...