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

Do you need help?

Es3 Logica Finale

DRDLCN (8070 points)
28 68 104
in Info sul corso e sugli esami by (8.1k points)
Ragazzi, ho capito la logica che c'è dietro al check delle coordinate ma non riesco a scrivere niente se non con molti cicli annidati:

ho 2  dizionari(1 per ogni robot) che come chiave hanno gli spostamenti (0,1,2 ecc) e come valori hanno un altro dizionario che per chiavi ha le x passaggio dopo passaggio e come valori le y passaggio dopo passaggio.

Inoltre ho sistemato le coordinate da checkare in un ulteriore dizionario che ha per chiave le x e nei valori ho le y

sbaglio nell'organizzazione dei dati?

Es. se voglio cercare (8,5) per come ho ragionato vado a vedere quanto valgono le x dei 2 robottini quando la y è uguale a 5, se 5 è compreso tra queste 2 x la coordinata è buona

sbaglio?
762 views
closed

2 Answers

Best answer
a
alex_err (5800 points)
1 3 32
by (5.8k points)
selected by

Non è sbagliato. Ti sconsiglio i dizionari per lo salvataggio dei movimenti, per questo problema non sono efficienti. Va bene invece per le coordinate da checkare, anche se, farei l'incontrario: y come chiavi e le x come valori. Su una riga puoi trovare più di un punto. Inoltre, se segui degli opportuni accorgimenti, puoi notare che seguendo questa logica eviteresti di calcolarti ogni volta i percorsi, basta ragionarci un attimo e partire dal basso.

DRDLCN (8070 points)
28 68 104
by (8.1k points)
quindi non ti calcoli il percorso totale?

non ho capito questo ragionamento, mi è sembrato di capire che ti ordini le coordinate da checkare però

ma cosi facendo non ricalcoli ogni volta il percorso?
a
alex_err (5800 points)
1 3 32
by (5.8k points)

quindi non ti calcoli il percorso totale

No, infatti. Il percorso viene calcolato proseguendo la "salita".  

non ho capito questo ragionamento, mi è sembrato di capire che ti ordini le coordinate da checkare però

E' esatto, non volevo essere troppo esplicito. wink 

ma cosi facendo non ricalcoli ogni volta il percorso?

No, proprio perché una volta che i due robottini sono saliti fino a y=10, se ho degli altri punti in y=25 mi basta ripartire da y=10 ed arrivare fino alla y di destinazione (ovviamente se è nell'intervallo dei due robottini). Ho dato per scontato i controlli sulle x, ma sono sempre da fare. E' un giochetto di indici se ci rifletti.

DRDLCN (8070 points)
28 68 104
by (8.1k points)
e per spostare i robot fino a y = 10 per esempio, usi la lista spostamenti fino a che la y non assume 10...ma se la y non assume mai 10? se magari salta da 8 a 11?
a
alex_err (5800 points)
1 3 32
by (5.8k points)
Non si pone il problema, finché la y è nell'intervallo y1 >= y >= y2. Ti consiglio di disegnarti il grafico generato dal primo test dell'esercizio, ti aiuta a farti un'idea di quello che succede. Quando y == y1 o y == y2 devi anche stare attento a non contare i punti che si trovano sul grafico.
DRDLCN (8070 points)
28 68 104
by (8.1k points)
ma se la y del rob1 è gia >= di y

mentre la y del rob2 è < di y

sposto solo il rob2 no?
Xriuk (13590 points)
8 24 116
by (13.6k points)
Tu come chiavi hai gli spostamenti? In che senso?
Perchè non metti come chiavi direttamente le x e come valore le y?
DRDLCN (8070 points)
28 68 104
by (8.1k points)
ho gli spostamenti nel senso 0 1 2 3 4 .... le mosse che fa il robottino