Rutnätsvandringar och riktningsvektorer
Flytta med dx, dy och håll er inom gränserna
Rutnätsvandringar och riktningsvektorer är en gratis lektion i Förberedelse inför kodningsintervjuer på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Förberedelse inför kodningsintervjuer, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Förberedelse inför kodningsintervjuer innehåller totalt 4 lektioner.
Att gå på ett rutnät
Många simuleringar sker på ett rutnät med rader och kolumner. En markör börjar någonstans och förflyttar sig cell för cell enligt givna riktningar. 🗺️
Håll reda på rad och kolumn
Håll positionen som ett par (r, c). Radnumret ökar uppifrån och ned, och kolumnnumret från vänster till höger.
r, c = 0, 0Riktningsvektorer
Koda varje förflyttning som en (dr, dc)-vektor. Om den adderas till positionen förflyttas ni en cell i den riktningen, utan några if-kedjor.
dr, dc = 0, 1 # move rightDe fyra grannarna
Lagra de fyra förflyttningarna i arrayer så att ni kan loopa över dem. Detta är standardmönstret upp, ned, vänster och höger.
DR = [-1, 1, 0, 0]
DC = [0, 0, -1, 1]Ta ett steg
För att förflytta er behöver ni bara addera den valda vektorn till den aktuella cellen. Samma två rader fungerar för alla fyra riktningar.
r += DR[k]
c += DC[k]Håll er inom gränserna
Kontrollera före varje steg att cellen ligger innanför rutnätet. Raderna går från 0 till R-1 och kolumnerna från 0 till C-1; allt annat ligger utanför brädet.
if 0 <= r < R and 0 <= c < C:
passDiagonaler när det är tillåtet
Vissa problem tillåter även diagonala förflyttningar. Lägg till de fyra hörnvektorerna för att skapa en uppsättning grannar i åtta riktningar.
DR8 = [-1,-1,-1,0,0,1,1,1]
DC8 = [-1,0,1,-1,1,-1,0,1]Sväng vänster eller höger
För en robot som svänger kan ni rotera indexet för den riktning roboten är vänd mot i stället för att skriva separata fall. Modulo gör att indexet fortsätter runt bland de fyra riktningarna.
facing = (facing + 1) % 4 # turn rightBlockerade celler och väggar
Kontrollera rutnätsvärdet före varje förflyttning. Om en cell är en vägg ska den hoppas över eller simuleringen stoppas, precis som reglerna anger.
if grid[r][c] == '#':
continueRutnät med övergång vid kanten
Om rutnätet går runt kanten tar ni koordinaterna modulo storleken, så att den högra kanten smidigt ansluter till den vänstra.
r = (r + dr) % R
c = (c + dc) % CVarför vektorer är bättre
Riktningsvektorer ersätter invecklade if-else-block med en enda tydlig loop. Färre grenar betyder färre buggar under tävlingspress.
Snabb kontroll
Ni går på ett rutnät med hjälp av riktningsvektorer och måste hålla er på brädet.
Sammanfattning
Håll positionen som (r, c), förflytta er genom att addera riktningsvektorer, loopa över de fyra grannarna och kontrollera alltid gränserna före varje steg. 🚀
Lär dig Förberedelse inför kodningsintervjuer med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 90
- Lektioner
- 360
Vanliga frågor
Är lektionen ”Rutnätsvandringar och riktningsvektorer” gratis?
Ja – hela texten till ”Rutnätsvandringar och riktningsvektorer” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Förberedelse inför kodningsintervjuer, kan Ni uppgradera till CoddyKit PRO. Kursen i Förberedelse inför kodningsintervjuer innehåller totalt 4 lektioner.
Vad lär jag mig i ”Rutnätsvandringar och riktningsvektorer”?
Flytta med dx, dy och håll er inom gränserna Ni övar på Förberedelse inför kodningsintervjuer med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Förberedelse inför kodningsintervjuer?
Du behöver inga förkunskaper. Utbildningen i Förberedelse inför kodningsintervjuer på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Rutnätsvandringar och riktningsvektorer”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Förberedelse inför kodningsintervjuer-lektionen?
Ja. Varje Förberedelse inför kodningsintervjuer-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Modellera tillstånd och gå framåt
- Rutnätsvandringar och riktningsvektorer
- Cykeldetektering i simuleringar
- Bemästra knepiga specialfall