Buongiorno a tutti,
chiedo il vostro gentile aiuto per una spiegazione su un metodo java di un "gioco" che è il seguente:
Ho un un millepiedi rappresentato come Coda in java, in cui ogni sezione è un oggetto di tipo NodoCoda formato da una coppia(x,y) che rappresentano le coordinate dell'oggetto NodoCoda all'interno del campo da gioco.
Si può pensare il campo da gioco come un array bidimensionale.
Io devo realizzare il metodo
il quale se possibile fa avanzare il millepiedi di un quadrante verso l'alto e restituisce true; se invece dopo lo stesso avanzamento avvenisse una collisione sul bordo del campo o su se stesso allora restituisce false. Se il parametro passato come argomento è true allora il millepiedi si allunga di una sezione durante lo stesso spostamento, altrimenti mantiene invariata la lunghezza.codice:public boolean spostaSu(boolean accoda)
La soluzione che mi viene proposta è la seguente, purtroppo a me poco chiara:
codice:public boolean spostaSu(boolean accoda){ NodoCoda temp; NodoCoda nuovo = new NodoCoda(); nuovo.x = primo.x; nuovo.y = primo.y-1; nuovo.prox = primo; primo = nuovo; temp = primo; while(temp.prox.prox!=null) temp= temp.prox; if(!accoda) temp.prox = null; temp= primo.prox; while(temp!=null){ if(primo.prox==temp.x && primo.y==temp.y) return false temp = temp.prox; } if(primo.y<0) return false; else return true; }
Ringrazio chiunque mi aiuti a chiarirmi la nebbia che ho in testa in merito a questo esercizio.
Grazie

Rispondi quotando