Is het efficiënter om een ​​"controleplaats" functie in een "move functie" omvatten voor een spel, of buiten als een externe functie?

stemmen
0

Ik ben het creëren van een spel in C ++ (gesproken, doet de code die ik kwestie gebruiken?), Die los wilde altijd Cali worden omschreven als een bordspel, en ik vraag me af welke van deze twee te controleren of karakter is out of bounds functies is efficiënter:

EEN:

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

TWEE

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

In wezen, de eerste die ieder wezen beweegt, controleert vervolgens alle entiteiten posities en stelt hen dienovereenkomstig, en de tweede zorgt ervoor dat de spelers bewegen hem niet verplaatsen out of bounds, reather van te wachten tot het einde van de lus.

Ik zou graag willen weten welke van deze twee (systemen?) Is efficiënter en sneller dan de andere, of, als ze beide gelijk, die een van deze een betere stijl van coderen zou zijn?

De vraag is gesteld op 05/06/2009 om 21:48
bron van user
In andere talen...                            


3 antwoorden

stemmen
0

Dat laatste is sneller (niet te doen en ongedaan maken). Ik zou ook denken dat het is de stofzuiger, maar dat is een kwestie van mening.

antwoordde op 05/06/2009 om 21:50
bron van user

stemmen
0

Ik zou ervoor zorgen dat ooit bewegen legaal is voordat u hem verplaatst. Op die manier houdt u een gezonde toestand in plaats van te proberen iets en het verlaten van de "board" in een ongeldige toestand. Het is ook zinvol op een object georiënteerde wijze. Het object kan een ongeldige zet daarom de verhuizing kan worden vertrouwd niet te maken.

antwoordde op 05/06/2009 om 21:51
bron van user

stemmen
0

Controle voor bewegende zou sneller zijn, sparen, denk ik, zijn de kansen van een persoon uit te gaan of bounds zijn opmerkelijk laag.

Wat betreft stijl, adviseer ik niet de grenzen te controleren vanuit de move () methode, zelfs als dat het inchecken in zijn eigen methode wordt gewonnen, want dat geeft je twee "redenen om te veranderen" de methode move () langs de lijn (dus breken Single verantwoordelijkheid , sommige mensen alleen dit af te dwingen naar de klas niveau, maar ik aanbevelen voor methoden als je ermee weg kunnen komen met het).

antwoordde op 05/06/2009 om 22:17
bron van user

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