Sto costruendo Tetris e sto cercando di pensare a come ruotare i pezzi.Tetris Java - Pensando alla rotazione dei pezzi
Girano su un singolo blocco? Oppure dovrebbero trasformarsi in posizioni di swap?
Il modo in cui sto pensando di farlo è una sorta di hardcode ... come (pseudocodice):
if (rotateRight()) {
if (Piece == "T") {
if (Piece.getCurrRotation() == down (aka.. 180 degrees))
move each Tile in Piece from the down rotation to the left rotation... each coordinate would be pre-specified for a given condition... aka lot's of hardcoding
}
if (Piece == "L") { etc...
}
}
if (rotateLeft()) {
perform same checks for the Left...
}
Ma questo sembra essere una quantità massssssive di codice solo per capire
lato) che rotazione il pezzo corrente è (c'è 4 possibili rotazioni per ogni pezzo)
dall'altro) Da lì ... impostalo sulle nuove coordinate codificate in base a quel pezzo
Dovrei farlo per ogni pezzo ... sembra il modo sbagliato di pensarci.
Qualche altra idea?
C'è qualche ragione per cui è necessario sapere dove ciascun blocco è in relazione con gli altri? –
Non so quanta parte del tuo codice sia pseudo, ma in Java, le variabili non iniziano con una lettera maiuscola - e non dovresti confrontare le stringhe usando '=='. – kba
@ChrisCooper Bene, ho già un metodo isOpen per verificare che gli spazi sulla griglia siano aperti ... ma non penso che debbano sapere le rispettive posizioni ... Immagino che potrei semplicemente calcolare nuove posizioni sulla base di rotazione, seleziona tutte le tessere (Imposta tutto == null), quindi ripristina la nuova posizione ... ma ciò richiederebbe comunque la codifica delle coordinate. – Growler