Sto lavorando alla codifica di un clone di Tetris in XNA C# e sono incerto sul modo migliore per avvicinarsi al lato della struttura di dati del gioco ad alto livello.Come creare un clone di Tetris?
Sto perfettamente bene con il rilevamento delle collisioni, le rotazioni, le animazioni ecc. Quello che mi serve sapere il modo migliore per fare la memorizzazione dei "blocchi rilasciati" - cioè blocchi che non sono più sotto il controllo del giocatore.
Penso che ogni blocco Tetromino debba essere memorizzato nella propria classe che consiste in un array 4x4 in modo che il blocco possa essere facilmente ruotato. Il problema è allora come memorizzare la posizione finale del tetromino nella griglia di gioco tagliando il tetromino in singoli blocchi (per ogni cella) e quindi impostare le posizioni corrispondenti della griglia di gioco principale per tenere questi stessi blocchi, quindi scomparire il tetromino una volta ha raggiunto la sua posizione finale. Forse c'è qualche svantaggio per il mio metodo.
Devo creare una matrice 10x20 per la griglia di gioco principale che può quindi essere archiviata? o dovrei usare pile o code per archiviare in qualche modo i blocchi rilasciati. O forse c'è qualche migliore metodo/struttura dati per archiviare le cose?
Sono sicuro che il mio modo funzionerebbe, ma sto cercando di capire se qualcuno conosce un modo migliore o se la mia strada è abbastanza buona?
P.S. Non a casa, questo sarà un progetto per il mio portfolio. Grazie.
Sono rispettosamente in disaccordo - vedi la mia risposta. –
Inoltre, non puoi fare animazioni dolci o gravità avanzata. La mia scheda è un mucchio di riferimenti ai pezzi. Quando una linea viene cancellata, ogni blocco cade separatamente, e se vengono divisi o i bit che causano l'impiccagione vengono rimossi, i pezzi cadranno come dovrebbero. –
@toast: Va bene dire che la sua risposta non va bene. E posso assolutamente vedere il tuo punto lì. Forse dovresti fornire una risposta che spieghi come lo faresti. –