Percorsi su griglia e vettori di direzione
Muoversi con dx, dy restando nei limiti
Percorsi su griglia e vettori di direzione è una lezione Competitive Programming Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Competitive Programming Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Competitive Programming Academy include 4 lezioni in totale.
Camminare su una griglia
Molte simulazioni si svolgono su una griglia di righe e colonne. Un token parte da una posizione e si muove cella per cella seguendo le direzioni. 🗺️
Tenga traccia di riga e colonna
Rappresenti la posizione con una coppia (r, c). La riga indica la posizione dall'alto verso il basso e la colonna da sinistra verso destra.
r, c = 0, 0Vettori di direzione
Codifichi ogni movimento come un vettore (dr, dc). Sommandolo alla posizione, si sposta di una cella in quella direzione senza bisogno di catene di if.
dr, dc = 0, 1 # move rightI quattro vicini
Memorizzi i quattro movimenti in array per poterli scorrere con un ciclo. Questo è il modello standard su, giù, sinistra, destra.
DR = [-1, 1, 0, 0]
DC = [0, 0, -1, 1]Faccia un passo
Per muoversi, deve semplicemente aggiungere il vettore scelto alla cella corrente. Le stesse due righe funzionano per tutte e quattro le direzioni.
r += DR[k]
c += DC[k]Rimanga entro i limiti
Prima di fare un passo, verifichi che la cella sia all'interno della griglia. Le righe vanno da 0 a R-1 e le colonne da 0 a C-1; qualsiasi altro valore è fuori dalla griglia.
if 0 <= r < R and 0 <= c < C:
passLe diagonali quando sono consentite
Alcuni problemi consentono anche movimenti diagonali. Aggiunga i quattro vettori degli angoli per ottenere l'insieme dei vicini nelle otto direzioni.
DR8 = [-1,-1,-1,0,0,1,1,1]
DC8 = [-1,0,1,-1,1,-1,0,1]Girare a sinistra o a destra
Per un robot che gira, ruoti l'indice della direzione verso cui è orientato invece di scrivere casi distinti. Il modulo lo mantiene in ciclo tra le quattro direzioni.
facing = (facing + 1) % 4 # turn rightCelle bloccate e muri
Controlli il valore della griglia prima di muoversi. Se una cella è un muro, la ignori o si fermi, esattamente come indicano le regole.
if grid[r][c] == '#':
continueGriglie con ritorno ai bordi
Se la griglia si avvolge, calcoli le coordinate modulo la dimensione, in modo che il bordo destro si colleghi nuovamente a quello sinistro.
r = (r + dr) % R
c = (c + dc) % CPerché i vettori sono vantaggiosi
I vettori di direzione sostituiscono blocchi if-else intricati con un unico ciclo ordinato. Meno diramazioni significano meno bug sotto la pressione di una gara.
Verifica rapida
Si muove su una griglia usando vettori di direzione e deve rimanere all'interno della griglia.
Riepilogo
Rappresenti la posizione con (r, c), si muova sommando vettori di direzione, scorra i quattro vicini e controlli sempre i limiti prima di fare un passo. 🚀
Domande Frequenti
La lezione «Percorsi su griglia e vettori di direzione» è gratuita?
Sì — il testo completo di «Percorsi su griglia e vettori di direzione» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Competitive Programming Academy, passa a CoddyKit PRO. Il corso Competitive Programming Academy include 4 lezioni in totale.
Cosa imparerò in «Percorsi su griglia e vettori di direzione»?
Muoversi con dx, dy restando nei limiti Eserciti Competitive Programming Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Competitive Programming Academy?
Non è richiesta alcuna esperienza precedente. Competitive Programming Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Percorsi su griglia e vettori di direzione»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Competitive Programming Academy?
Sì. Ogni lezione Competitive Programming Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Modellare lo stato e procedere per passi
- Percorsi su griglia e vettori di direzione
- Rilevare cicli nelle simulazioni
- Gestire i complessi casi limite