Это более эффективно, чтобы включить функцию «Проверка местоположения» в «функции перемещения» для игры, или за ее пределами как внешняя функция?

голоса
0

Я создаю игру в C ++ (Кстати говоря, делает код, я использую дело?), Который coudl быть свободно описан как настольная игра, и мне интересно, какой из этих двух «проверить, если персонаж находится вне границ» функции является более эффективным:

ОДИН:

int main()
{
    //display board
    //get player input
    //move player
    //if player is out of bounds,
      //force player back into bounds
}

ДВА

//int main()
{
    //same thing, except without last two lines.
}
void move(char input)
{
    //if input does not place player out of bounds
      //move player according to input
}

По сути, первый один перемещает каждый объект, а затем проверяет все позиции лиц и сбрасывает их, соответственно, а второй один убеждается, что игроки двигаются не перемещают его пределы, reather не ждать до конца цикла.

Я хотел бы знать, какой из этих двух (систем?) Является более эффективным и быстрее, чем другие, или, если они оба равны, что один из них будет лучше стиль кодирования?

Задан 05/06/2009 в 21:48
источник пользователем
На других языках...                            


3 ответов

голоса
0

Последнее происходит быстрее (не делать и погубило). Я также думаю, что это чище, но это дело вкуса.

Ответил 05/06/2009 в 21:50
источник пользователем

голоса
0

Я хотел бы убедиться, что когда-либо двигаться законно перед его перемещением. Таким образом, вы держите в нормальное состояние, а не пытаться что-то и оставляя «совет» в недопустимом состоянии. Он также имеет смысл в объектно-ориентированном образом. Объект не может сделать неверный шаг, поэтому этот шаг можно доверять.

Ответил 05/06/2009 в 21:51
источник пользователем

голоса
0

Проверка перед хождением будет быстрее, за исключением, я полагаю, шансы человека, выходящего за пределы будучи очень низким.

Что касается стиля, я рекомендую не проверять границы внутри метода () в движении, даже если проверка извлекается в отдельный метод, так как это дает вам две «причины , чтобы изменить» метод перемещения () вниз линии (тем самым нарушая Single Ответственность , некоторые люди только соблюдение этого на уровне класса, но я рекомендую его методу , когда вы можете уйти с ним).

Ответил 05/06/2009 в 22:17
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more