Jest to bardziej efektywne włączenie „Location Check” funkcji „w funkcji Move” w grze, lub na zewnątrz jako funkcja zewnętrznego?

głosy
0

Tworzę grę w C ++ (A propos, czy kod używam chodzi?), Który coudl określić mianem gry planszowej, i zastanawiam się, który z tych dwóch „sprawdzić, czy znak jest poza zakresem” funkcje jest bardziej efektywne:

JEDEN:

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

DWA

//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
}

Zasadniczo, pierwszy porusza się każdy podmiot, a następnie sprawdza, czy wszystkie pozycje podmioty i resetuje je odpowiednio, a drugi zapewnia, że ​​gracze nie porusza przenieść go poza granicami, reather niż czekać aż do końca pętli.

Chciałbym wiedzieć, które z tych dwóch systemów (?) jest bardziej wydajny i szybciej niż inne, lub, jeśli oboje są równe, który jeden z nich byłby lepszy styl kodowania?

Utwórz 05/06/2009 o 21:48
źródło użytkownik
W innych językach...                            


3 odpowiedzi

głosy
0

Ten ostatni jest szybszy (nie robi i zgubą). Ja również uważam, że jest czystsze, ale to kwestia opinii.

Odpowiedział 05/06/2009 o 21:50
źródło użytkownik

głosy
0

Chciałbym się upewnić, że kiedykolwiek przenieść jest prawnym przed przeniesieniem. W ten sposób można utrzymać stan sane zamiast próbować coś i pozostawiając „deska” w nieprawidłowym stanie. To również sprawia, że ​​więcej sensu w sposób obiektowego. Obiekt nie może mieć nieprawidłowy ruch, więc ruch może być zaufany.

Odpowiedział 05/06/2009 o 21:51
źródło użytkownik

głosy
0

Sprawdzenie przed przejściem byłoby szybciej, zapisz, przypuszczam, szanse na osobę dzieje poza granicami będących zadziwiająco niska.

Jeśli chodzi o styl, polecam nie sprawdzając granice z wewnątrz ruchu metoda (), nawet jeśli ta kontrola jest pobierany do własnej metody, jako że daje dwa „powodów do zmian” metodę ruch () wzdłuż linii (a więc łamanie Jedynka odpowiedzialność , tylko niektórzy ludzie egzekwować to na poziomie klasy, ale polecam go do metod, kiedy można uciec z nim).

Odpowiedział 05/06/2009 o 22:17
źródło użytkownik

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