Competitive Programming Academy · Lección

Recorridos de cuadrículas y vectores de dirección

Muévase con dx, dy y manténgase dentro de los límites

Lección 2 de 413 pasos

Recorridos de cuadrículas y vectores de dirección es una lección gratuita de Competitive Programming Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Competitive Programming Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Competitive Programming Academy incluye 4 lecciones en total.

Recorrer una cuadrícula

Muchas simulaciones tienen lugar en una cuadrícula de filas y columnas. Una ficha comienza en algún punto y se mueve celda a celda siguiendo direcciones. 🗺️

Siga la fila y la columna

Mantenga la posición como un par (r, c). La fila indica la línea de arriba abajo y la columna, la de izquierda a derecha.

r, c = 0, 0

Vectores de dirección

Codifique cada movimiento como un vector (dr, dc). Al sumarlo a la posición, esta se desplaza una celda en esa dirección, sin necesitar cadenas de condiciones.

dr, dc = 0, 1  # move right

Los cuatro vecinos

Guarde los cuatro movimientos en arrays para poder recorrerlos con un bucle. Este es el patrón estándar de arriba, abajo, izquierda y derecha.

DR = [-1, 1, 0, 0]
DC = [0, 0, -1, 1]

Dé un paso

Para moverse, solo tiene que sumar el vector elegido a la celda actual. Las mismas dos líneas funcionan para cualquiera de las cuatro direcciones.

r += DR[k]
c += DC[k]

Manténgase dentro de los límites

Antes de avanzar, compruebe que la celda está dentro de la cuadrícula. Las filas van de 0 a R-1 y las columnas de 0 a C-1; cualquier otro valor queda fuera del tablero.

if 0 <= r < R and 0 <= c < C:
    pass

Diagonales cuando estén permitidas

Algunos problemas también permiten movimientos diagonales. Añada los cuatro vectores de las esquinas para crear un conjunto de vecinos en ocho direcciones.

DR8 = [-1,-1,-1,0,0,1,1,1]
DC8 = [-1,0,1,-1,1,-1,0,1]

Girar a la izquierda o a la derecha

Para un robot que gira, rote su índice de orientación en lugar de escribir casos separados. El módulo hace que recorra cíclicamente las cuatro direcciones.

facing = (facing + 1) % 4  # turn right

Celdas bloqueadas y paredes

Compruebe el valor de la cuadrícula antes de moverse. Si una celda es una pared, sáltela o deténgase, exactamente como indiquen las reglas.

if grid[r][c] == '#':
    continue

Cuadrículas toroidales

Si la cuadrícula es toroidal, tome las coordenadas módulo el tamaño para que el borde derecho se conecte de nuevo con el izquierdo de forma continua.

r = (r + dr) % R
c = (c + dc) % C

Por qué ganan los vectores

Los vectores de dirección sustituyen los bloques enrevesados de if-else por un único bucle ordenado. Menos ramificaciones implican menos errores bajo la presión de un concurso.

Comprobación rápida

Recorre una cuadrícula usando vectores de dirección y debe mantenerse dentro del tablero.

Resumen

Mantenga la posición como (r, c), muévase sumando vectores de dirección, recorra los cuatro vecinos y compruebe siempre los límites antes de avanzar. 🚀

Gratis para empezar

Aprende Python con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
30
Lecciones
120

Preguntas frecuentes

¿La lección «Recorridos de cuadrículas y vectores de dirección» es gratis?

Sí — el texto completo de «Recorridos de cuadrículas y vectores de dirección» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Competitive Programming Academy, actualiza a CoddyKit PRO. El curso de Competitive Programming Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Recorridos de cuadrículas y vectores de dirección»?

Muévase con dx, dy y manténgase dentro de los límites Practicas Competitive Programming Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Competitive Programming Academy?

No se requiere experiencia previa. Competitive Programming Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Recorridos de cuadrículas y vectores de dirección»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Competitive Programming Academy?

Sí. Cada lección de Competitive Programming Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Modele el estado y avance paso a paso
  2. Recorridos de cuadrículas y vectores de dirección
  3. Detección de ciclos en simulaciones
  4. Domine los complicados casos límite
← Volver a Competitive Programming Academy