È più efficace di includere una funzione di "posizione di controllo" in una "funzione mossa" per un gioco, o al di fuori come una funzione esterna?

voti
0

Sto creando un gioco in C ++ (a proposito, fa il codice che uso importa?), Che scovare essere vagamente descritto come un gioco da tavolo, e mi chiedo quale di questi due controllare se il carattere è fuori dai limiti funzioni è più efficiente:

UNO:

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

DUE

//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 sostanza, il primo muove ogni entità, quindi controlla tutte le posizioni entità e li ripristina di conseguenza, e il secondo fa in modo che i giocatori si muovono non lo sposta fuori dai limiti, reather che aspettare fino alla fine del ciclo.

Mi piacerebbe sapere quale di questi due sistemi (?) È più efficiente o più veloce rispetto agli altri, o, se sono entrambi uguali, che uno di questi sarebbe un migliore stile di codifica?

È pubblicato 05/06/2009 alle 21:48
fonte dall'utente
In altre lingue...                            


3 risposte

voti
0

Quest'ultimo è più veloce (non fare e disfare). Vorrei anche che è il più pulito, ma questa è una questione di opinione.

Risposto il 05/06/2009 a 21:50
fonte dall'utente

voti
0

Vorrei fare in modo che mai si muovono è legale prima di spostarlo. In questo modo si mantiene uno stato sano di mente, invece di cercare qualcosa e lasciando il "board" in uno stato non valido. Ma rende anche più senso in modo orientato agli oggetti. L'oggetto non può fare una mossa non valida quindi la mossa può essere attendibile.

Risposto il 05/06/2009 a 21:51
fonte dall'utente

voti
0

Controllo prima di trasferirsi sarebbe più veloce, salvare, suppongo, le probabilità di una persona di uscire dai limiti che sono notevolmente basso.

Per quanto riguarda lo stile, vi consiglio di non controllare i confini dall'interno del metodo () si muovono, anche se questo controllo viene estratta in un proprio metodo, come che ti dà due "ragioni per cambiare" il metodo Move () su tutta la linea (rompendo così singolo responsabilità , alcune persone valere solo questo a livello di classe, ma lo consiglio per i metodi quando si può ottenere via con esso).

Risposto il 05/06/2009 a 22:17
fonte dall'utente

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