Er det mer effektivt å inkludere en "check location" funksjon i en "trekk-funksjon" for et spill, eller utenfor som en ekstern funksjon?

stemmer
0

Jeg oppretter et spill i C ++ (Apropos, gjør koden jeg bruker saks skyld?), Som kunne gjort bli løst beskrevet som et brettspill, og jeg lurer på hvilken av disse to sjekke om karakteren er utenfor banen funksjoner er mer effektiv:

EN:

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

TO

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

I hovedsak flytter den første hver enhet, sjekker deretter alle enhetenes stillinger og nullstiller dem deretter, og den andre sørger for at spillerne flytter ikke flytte ham ut av banen, reather enn å vente til slutten av loopen.

Jeg vil gjerne vite hvilke av disse to (systemer?) Er mer effektiv eller raskere enn den andre, eller, hvis de er begge like, hvilken av disse ville være et bedre koding stil?

Publisert på 05/06/2009 klokken 20:48
kilden bruker
På andre språk...                            


3 svar

stemmer
0

Sistnevnte er raskere (Ikke gjør og angre). Jeg vil også tro at det er renere, men det er en smakssak.

Svarte 05/06/2009 kl. 20:50
kilden bruker

stemmer
0

Jeg vil sørge for at stadig flytte er lovlig før du flytter den. På den måten du holder en normal tilstand i stedet for å prøve noe og forlater "bord" i en ugyldig tilstand. Det gjør også mer fornuftig i et objektorientert måte. Objektet kan ikke gjøre en ugyldig trekk derfor flyttingen kan være klarert.

Svarte 05/06/2009 kl. 20:51
kilden bruker

stemmer
0

Kontroll før flytting ville være raskere, lagre, antar jeg, oddsen for en person å gå ut av banen være bemerkelsesverdig lav.

Når det gjelder stil, anbefaler jeg ikke å sjekke grensene innenfra farten () metoden, selv om at innsjekking er hentet inn i sin egen metode, som som gir deg to "grunner til å endre" flyttingen () -metoden ned linjen (og dermed bryte Enkelt ansvar , og noen mennesker bare håndheve dette på klassenivå, men jeg anbefaler det for metoder når du kan komme unna med det).

Svarte 05/06/2009 kl. 21:17
kilden bruker

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