Здравствуйте, Sorc17, Вы писали:
S>Вот, отдаю на суд тем кому не лень заглянуть в чужой код свою писанину на яваскрипте. Это класс игрока для для одной простенькой РПГшки, в которой пока ничего нельзя делать кроме как ходить по карте и чатится в чате.
Забавно что есть комментарии для строк типа
/**
* Имя игрока.
*/
this.name = name;
но нет для гораздо более неочевидных, где вычисляются корни, что-то делится, умножается, складывается.
Т.е. собственно логика не прокомментирована. А имена переменных лучше вместо комментарий, понятнее назвать
Здравствуйте, _Obelisk_, Вы писали:
_O_>Много комментариев. Лучше использовать говорящие имена перменных/функций и стараться избегать тавтологий в духе _O_> * Идентификатр карты, на котрой находится игрок. _O_> this.mapId = mapId
можно поинтересоваться, с какого языка this.mapId переводится как "Идентификатр карты, на котрой находится игрок"?
// Эту функцию можно вызвать только как конструктор (с new).
if (this.constructor !== arguments.callee) {
throw new Error("Constructor called like a simple function!");
Также эта проверка не позволит нормально реализовать наследование от вашего класса.
// Пройденное расстояние между соседними точками пути, где находится
// игрок.
var s
// Полное расстояние между соседними точками пути, где находится
// игрок.
var S
Это дело вкуса, конечно, но имена переменных одной буквой в разном регистре обычно обфускаторы типа YUI делают, чтобы максимально код запутать
Здравствуйте, vodoo, Вы писали:
V>Вставлю свои 5 копеек:
V>
V>// Эту функцию можно вызвать только как конструктор (с new).
V>if (this.constructor !== arguments.callee) {
V> throw new Error("Constructor called like a simple function!");
V>
V>Также эта проверка не позволит нормально реализовать наследование от вашего класса.
Может, дурацкое замечание, но мне почему-то резануло глаз. Очень странно видеть, чтобы параметры, названные i и j, передавались в обратном алфавитном порядке "j, i".
Тут есть два подхода:
1. Можно рассматривать их как декартовы координаты, тогда надо назвать их x, y (первая координата по ширине, вторая координата по высоте)
2. Можно рассматривать их как индексы в матрице, тогда передавать в порядке i, j (первый индекс — номер строки, второй индекс — номер столбца) При работе с матрицами нумеровать так — общепринятая практика, и то, что первой идет "координата по высоте" не должно смущать.
А у вас смесь двух подходов, что может сильно запутать другого человека, которому придется пользоваться этим кодом.