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.

Verso errato?

giorgio.belli (10140 points)
24 74 98
in Es2 by (10.1k points)
closed by
Buonasera, mentre provavo a fare qualche prova sul nuovo homework ho notato che l'intero rappresentante il verso in cui girare sulla pista è al contrario, è possibile?
Nel codice del simulatore (righe: 205-208) controlla se il traguardo è alla destra del giocatore ma imposta la direzione verso sinistra e viceversa.
Ho interpretato in maniera errata il significato del verso o è errato il codice?
Grazie anticipatamente per le risposte
826 views
closed with the note: va bene così ...

3 Answers

Best answer
andrea.sterbini (207940 points)
756 1270 2377
by (208k points)
selected by

Alla partenza ci si allontana dal traguardo, e lo si raggiunge dopo un giro.

Quindi se il carattere '|' è a destra della macchina si parte verso sinistra (x decrescenti, verso=-1), altrimenti si parte verso destra (x crescenti, verso = +1).

if mappa[y][x+1] == '|':
    car.verso = -1     # verso sinistra
else:
    car.verso = +1     # verso destra
andrea.sterbini (207940 points)
756 1270 2377
by (208k points)
Acc.... non ci ho pensato che normalmente si parte prima del traguardo, lo si attraversa una prima volta e alla seconda il giro è finito.
Vabbè, oramai lasciamo il codice così ...
giorgio.belli (10140 points)
24 74 98
by (10.1k points)
Esatto intendevo proprio quello normalmente si parte prima e non capivo perche le macchinine se lo lasciavano alle spalle. Comunque adesso è chiaro grazie delle spiegazioni (y)
split (8700 points)
21 59 79
by (8.7k points)
da come ho capito io il traguardo è "alle tue spalle", quindi se è a sinistra del giocatore, guardando dall'alto,questo parte andando verso destra, e vice versa
giorgio.belli (10140 points)
24 74 98
by (10.1k points)
esatto, come ho detto anche leggendo il codice del simulatore non capisco se sto sbagliando io o se sono invertiti i valori.
p
pietroliberati98 (950 points)
4 10 16
by (950 points)
Ma semplicemente il verso ti dice se la posizione x all'inizio aumenta o diminuisce. La pista e' una matrice e quindi la cella di posizione x+1 e' quella a destra, mentre quella di posizione x-1 e' quella a sinistra. Quindi se verso=1 ti devi spostare a destra, mentre se e' -1 a sinistra.

Spero di essermi spiegato bene.
andrea.sterbini (207940 points)
756 1270 2377
by (208k points)
Esatto, l'ho pensato così
1794095 (990 points)
5 13 22
by (990 points)
da li il bug che avevo spiegato prima in classe sul controllo dell'arrivo
giorgio.belli (10140 points)
24 74 98
by (10.1k points)
il fatto è che ad esempio sulla mappa anello le macchine si trovano a destra del traguardo, però come verso mi viene passato +1, non dovrei partire da dietro il traguardo anziché subito avanti?