Я пишу небольшую игру, основанную на плитке, и мне трудно выбрать язык, который я должен использовать, чтобы как можно проще описать несколько функций. Я хочу, чтобы имена моих функций выражали то, что делает функция, не делая их слишком длинными. Вот моя проблема:
Эти функции вычисляют положения строк и столбцов на карте мозаичного изображения с учетом координат x и y точки.
var tile_width = 32;
var tile_height = 32;
function getColumnFromX(x) { return Math.floor(x / tile_width); }
function getRowFromY(y) { return Math.floor(y / tile_height); }
Как видите, эти функции очень выразительны. Вы знаете, что один получает позицию столбца на карте, в которой лежит x, а другой получает позицию строки на карте, в которой лежит y. Проблема в том, что мне не нужны две функции для этого, потому что tile_width
и tile_height
имеют одинаковое значение.
Так что у меня действительно есть:
var tile_size = 32;
function getColumnOrRowFromXOrY(x_or_y) { return Math.floor(x_or_y / tile_size); }
Это имя слишком длинное и громоздкое, а другие функции, такие как getColumnOrRowCenterFromColumnOrRow
, неприемлемы, даже если их имена точно описывают, что делается.
Мое незаконченное решение - заменить ColumnOrRow
и XOrY
их собственными описательными словами. XOrY
логически можно заменить на Coordinate
, но я не знаю, что заменить ColumnOrRow
на.
Мой вопрос: что такое столбец и строка? Если x и y являются координатами, что такое столбцы и строки? Я знаю, что они являются координатами сетки, но составные слова как бы лишают цели упрощения имени.
Знание описательного слова может превратить указанное выше имя функции в:
function getWordFromCoordinate(coordinate) { /* ... */ }
Где Word - это слово, которое описывает, что такое столбец и строка.
В основе этого вопроса лежит желание узнать, какое одно английское слово может описать строку или столбец математически точным способом.
Знание анатомии базы данных. Таблица может быть полезной, но я не нашел ничего полезного в Интернете. Кроме того, тот факт, что JavaScript не поддерживает перегрузку функций, делает именование функций, которые делают то же самое, с немного отличающимися параметрами немного более утомительным.