Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

Dubbio movimento diagonale snake: lecito o no?

m
mattia.regina (310 points)
0 4 6
in HW6 by (310 points)
closed by
Ciao a tutti, dopo aver finito di lavorare all'hw6 mi è venuto un dubbio circa gli spostamenti dello snake in diagonale e il controllo dei pixel adiacenti.

https://imgur.com/gallery/fIRHJaV

Andando a SW non ci sono dubbi, ma se il comando fosse SE? E' sufficiente che i due pixel adiacenti siano verdi per far sì che la mossa sia illecita, oppure, come in questo caso, non essendoci stato uno spostamento diagonale tra i due pixel adiacenti, il serpente può muoversi in direzione SE?

Vi ringrazio in anticipo per l'aiuto!
235 views
closed with the note: Problema risolto, grazie a tutti!

3 Answers

Paolo Gentili (31130 points)
3 6 114
by (31.1k points)
edited by

Qualunque movimento farai morirai sempre, si muove prima la testa della coda, quindi in qualunque caso oltre questa situazione non si può andare senza fermare il programma.

a SW come hai detto è scontato, mentre a SE morirai comunque perché (anche se la coda scorresse) verresti comunque ostacolato.

Ti consiglio di vedere questa discussione qui perché il prof masi ha gia spiegato come ha deciso che questa mossa sia "illegale"

m
mattia.regina (310 points)
0 4 6
by (310 points)
In teoria la coda si muove in direzione NW, quindi non dovrebbe andare a collidere con nulla
Paolo Gentili (31130 points)
3 6 114
by (31.1k points)
ma a NW collide con se stesso, comunque rimane che ovunque si muove muore, i professori ce lo hanno assicurato
l.vitale3 (6010 points)
10 22 83
by (6.0k points)
Dall'immagine proposta qualasi movimento che provi a fare (DAL PUNTO IN CUI E' LA TESTA) muori. Quindi in diagonali è sufficiente controllare la posizione dei 2 pixel adiacenti alla diagonale.

Per avere le idee più chiare puoi guardare questo (https://q2a.di.uniroma1.it/27302/altro-caso-particolare-hw6?show=27302#q27302&course=hw6/homeworks/fondamenti-di-programmazione-22-23) avevo aperto una discussione su questo argomento.

E questo è un'altro caso particolare che si può presentare (https://q2a.di.uniroma1.it/27257/dubbio-caso-particolare-hw6?show=27257#q27257&course=hw6/homeworks/fondamenti-di-programmazione-22-23)
m
mattia.regina (310 points)
0 4 6
by (310 points)
Quindi è sufficiente verificare che i due pixel adiacenti siano occupati dal serpente e che sia in atto un movimento diagonale, giusto?
l.vitale3 (6010 points)
10 22 83
by (6.0k points)
Esattamente.
m
marinavalant (190 points)
0 0 2
by (190 points)
da quanto ho capito non dovrebbero esserci problemi andando a SE in questo caso