В моем коде, я часто использую формулу, которая возвращает меня индекс в 2D массива:Как заменить дублированные индексы вычисления формулы
cells[cellToMarkX + cellToMarkY * xSize]
// ...
if (cells[j + i * xSize] == 0)
//...
else if (cells[j + i * xSize] >= 5)
//..
cells[cellToMarkX + cellToMarkY * xSize] += 4;
я не уверен, если я вместо того, чтобы создать какую-то функцию, как
getCell(int x, int y)
или должен ли это ненужно, и я должен предпочесть использовать макрос?
Если вы используете формулу очень часто, функция не является ненужной. – user463035818
DRY - прекрасный принцип. но в какой-то момент вы заходите слишком далеко. 'x = x + 2;'. «Ooops, теперь я дважды повторял« x »и нарушал DRY. Теперь мне нужно« add_two (x) », чтобы предотвратить повторение xs ... и теперь я повторил' d' в add, blah blah blah. –
yes но если бы я использовал #define, чтобы определить эту простую формулу ячейки [x + y * xsize], было бы неуместно? – Mateusz