Verso errato?

giorgio.belli (10140 points)
17 74 98
asked Dec 19, 2017 in Es2 by giorgio.belli (10,140 points)
closed Dec 20, 2017 by andrea.sterbini
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
404 views
closed with note: va bene così ...

3 Answers

Best answer
andrea.sterbini (172780 points)
513 935 1789
answered Dec 20, 2017 by andrea.sterbini (172,780 points)
selected Dec 20, 2017 by andrea.sterbini

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 (172780 points)
513 935 1789
commented Dec 20, 2017 by andrea.sterbini (172,780 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)
17 74 98
commented Dec 21, 2017 by giorgio.belli (10,140 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)
15 59 79
answered Dec 20, 2017 by split (8,700 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)
17 74 98
commented Dec 20, 2017 by giorgio.belli (10,140 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)
3 10 16
answered Dec 20, 2017 by pietroliberati98 (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 (172780 points)
513 935 1789
commented Dec 20, 2017 by andrea.sterbini (172,780 points)
Esatto, l'ho pensato così
1794095 (990 points)
3 13 22
commented Dec 20, 2017 by 1794095 (990 points)
da li il bug che avevo spiegato prima in classe sul controllo dell'arrivo
giorgio.belli (10140 points)
17 74 98
commented Dec 20, 2017 by giorgio.belli (10,140 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?