Guías

Craftomation 101 Arrays, funciones y coordinación multi-mate

Deja atrás grafos copiados y pegados: funciones reutilizables, variables, arrays y tripulaciones que comparten un plan.

Última actualización:

Guía de arrays y funciones

Las victorias tempranas de Craftomation 101 vienen de bucles diminutos: Find, Combine, Drop, Idle. Las victorias de medio y final vienen de higiene de softwarefunciones reutilizables, variables y (desde 1.0 / Early Access tardío en adelante) arrays que dejan que una idea impulse muchos CraftoMates sin seis copias divergentes de MakeFire. Esta guía es la compañera avanzada de Programación visual: cuándo extraer funciones, cómo ayudan las variables, qué desbloquean los arrays y cómo coordinar una tripulación sin construir un robot mega-cerebro.

El juego sigue siendo para un jugador en Steam (Windows, macOS, Linux) de Luden.io, Early Access 19-02-2024, lanzamiento completo 14-09-2026. El código listo también drena baterías; empareja cada patrón aquí con fundamentos de Alimentar robots y Primeros pasos.

Por qué existen las herramientas avanzadas

El propio pitch de Steam señala funciones reutilizables, variables y arrays como el camino hacia sistemas más inteligentes. En juego, eso mapea a tres dolores:

  1. Pegaste MakeSpark en ocho bots y solo parchaste siete cuando se movió el Coal.
  2. Las baldosas Drop hardcodeadas se rompen cada vez que reconstruyes un patio.
  3. Los mensajeros necesitan una lista de depósitos, no un único cofre del tesoro.

Las funciones atacan (1). Las variables atacan (2). Los arrays atacan (3). No necesitas arrays para encender la primera hoguera: los necesitas cuando la logística se convierte en una hoja de cálculo que implementas con los pies.

Funciones primero: el hábito que escala

Una función de usuario es una subrutina con nombre que editas una vez y llamas desde muchos grafos. Extracciones clásicas tempranas:

  • MakeSpark — Stone, Stone, Combine
  • MakeFire — MakeSpark, Coal, Combine
  • EatBricks — compare de energía, buscar Coal Brick, Eat
  • FeedBonfire — MakeFire, Drop al pozo
  • MakeTank / MakeSteamBattery — medio juego industrial (Steam Battery)

Reglas de diseño de funciones

  • Una responsabilidad por función. FeedBonfireAndAlsoBrewAle es cómo se esconden los bugs.
  • Nombra verbos por resultados (EatBricks, no Helper2).
  • Parchea la definición y luego re-prueba a los callers — no forks en silencio una copia «solo para Heat3».
  • Mantén el cuidado de energía o dentro de cada función larga o como wrapper obligatorio que el grafo principal siempre llama.

Mejoras posteriores exponen bloques de control de mates dentro de la edición de funciones (pausar mate, arrancar mate, alimentar mate, fijar velocidad). Esas herramientas habilitan robots enfermeros y control de tráfico: sigue manteniendo un dueño claro por trabajo para saber qué grafo abrir al 2 % de batería.

Si las funciones aún se sienten abstractas, termina el vocabulario central de bloques en Programación visual antes de volver aquí.

Variables: recordar números, tipos y lugares

Las herramientas de variables (desbloqueadas por packs de investigación como familias Var Numbers / Var Coordinates / Var Objects / Var Logic) dejan que los programas midan y recuerden en lugar de solo actuar a ciegas:

  • Comparar umbrales de energía con números ajustables en lugar de vibes
  • Leer cuántos ítems hay en una baldosa antes de craftear más
  • Capturar coordenadas para que los targets Drop/Go se asignen en lugar de re-clicarse en cada bloque
  • Comparar tipos de objeto para que Combine solo dispare cuando las manos sostengan el par esperado

Patrones prácticos de variables:

  • Umbral lowEnergy compartido mentalmente en la tripulación (documéntalo en nombres de robots o comentarios en una nota lateral)
  • depotPos para la plataforma de carga de un mensajero
  • Conteos antes de rellenar un cofre de Steam Battery para no ahogar los ingresos de Water

Las variables brillan cuando el mundo cambia. Una plataforma de brewery reconstruida debería actualizar una historia de variable de coordenada — no diecisiete bloques Drop enterrados en clones.

Arrays: listas para logística adulta (1.0 / EA tardío)

Los arrays llegan como tooling avanzado de Early Access tardío / era 1.0: contenedores que guardan múltiples valores (números, coordenadas, incluso tipos de objeto) detrás de índices. Piensa «un puñado de variables pegadas en una estructura».

Capacidades de cara al jugador señaladas en notas de actualización incluyen:

  • Editar elementos directamente dentro del nodo array
  • Get element / Set element por índice (índices empezando en 1 en el tooling documentado)
  • Array length para saber cuántos slots importan
  • Una pestaña Advanced que agrupa comandos de array con herramientas estilo repeater
  • Pasar arrays a funciones personalizadas vía array input / array output

Semántica importante: cuando pasas un array a una función, la función recibe una copia; el original permanece sin cambios salvo que diseñes una ruta explícita de write-back. Esa regla de copia evita crosstalk accidental — y sorprende a jugadores que esperaban mutaciones pass-by-reference.

Para qué sirven los arrays

  • Lista ordenada de coordenadas de depósito de un mensajero
  • Lista de baldosas de staging del volcán o pozos de hoguera de un dropper
  • Checklist de tipos de ítem a sacar al llenar una caja de Cargo Mate
  • Compartir una definición de ruta entre varios mates dándole a cada uno una copia para caminar

Para qué no sirven los arrays

  • Sustituir tu primer bucle de Fire
  • Guardar «toda la fábrica» en una estructura opaca que nadie puede depurar
  • Evitar la especialización — un array de veinte trabajos en un bot sigue siendo un mega-cerebro

Coordinar varios mates sin caos

La programación avanzada apoya tripulaciones; no sustituye la propiedad. Modelo de coordinación recomendado:

  1. Los especialistas poseen crafts (Heat, Bricks, Tanks, Brewery).
  2. Los mensajeros poseen movimiento (Cargo Mate cuando importan las cajas).
  3. Los enfermeros poseen alimentación / pause-start / ayudas de velocidad usando bloques de interacción solo en funciones.
  4. Las funciones compartidas mantienen idéntica la matemática de craft entre especialistas.
  5. Los arrays/variables compartidos mantienen idénticas las ubicaciones entre mensajeros.

Secuencia qué especialistas contratar con Prioridad de automatización. Un array hermoso de depósitos vacíos no salvará a una tripulación que nunca automatizó Coal Bricks.

Depurar sistemas multi-mate

  • Pausa y observa un bot a través de un ciclo completo antes de culpar al array.
  • Verifica ítems sostenidos y energía antes de asumir que la matemática de índices está mal.
  • Confirma si una función recibió una copia de array y si las salidas se escribieron de vuelta.
  • Re-ejecuta tras ediciones estructurales para que los mates no queden a mitad de un grafo viejo.
  • Si dos mensajeros pelean por un cofre, separa plataformas — no añadas más ruido Find and pick.

Orden de aprendizaje sugerido

  1. Bucles Idle cerrados y ramas de energía (Primeros pasos, Programación visual)
  2. Extrae funciones MakeFire / EatBricks en dos bots
  3. Añade umbrales de variables y capturas de coordenadas cuando se muevan los patios
  4. Introduce arrays cuando mantengas tres o más ubicaciones o paradas de ruta relacionadas
  5. Pasa arrays a funciones solo después de que caminatas de array en un solo bot funcionen

Salta adelante solo si disfrutas reescribir. El hielo es paciente; los índices bugeados no.

Enlaces con metas de fábrica

Lista de comprobación

  1. Toda secuencia de craft duplicada es una función.
  2. El cuidado de energía está estandarizado entre callers.
  3. Las coordenadas que se mueven viven en variables (o slots de array), no solo en bloques Drop olvidados.
  4. Los arrays aparecen después de que el dolor logístico sea real.
  5. Se entienden las copias de array en funciones antes de esperar mutaciones.
  6. Los nombres de robots siguen coincidiendo con trabajos — el código avanzado no es excusa para Bot17.

La programación visual avanzada en Craftomation 101 va menos de presumir y más de negarse a mantener siete grafos MakeFire ligeramente distintos a las 3 a. m. Extrae funciones pronto, adopta variables cuando se muevan las plataformas, desbloquea arrays cuando aparezcan listas y mantén cada estructura lista subordinada a mates alimentados y especializados.

FAQ

Preguntas frecuentes

Respuestas rápidas a las dudas más comunes.

¿Cuándo debería empezar a usar funciones en Craftomation 101?

En cuanto copies la misma secuencia Spark/Fire o EatBricks en un segundo robot. Empieza con Programación visual.

¿Para qué se usan los arrays?

Guardar listas de números, coordenadas o tipos para que mensajeros y rutinas multi-parada compartan una definición de ruta — especialmente útil con la logística de Cargo Mate.

¿Existen los arrays desde el primer tutorial?

No. Los arrays son tooling avanzado asociado a la progresión de Early Access tardío / 1.0. Domina primero bucles Idle y funciones (Primeros pasos).

¿Qué pasa cuando paso un array a una función?

El comportamiento documentado da a la función una copia; el array original permanece sin cambios salvo que escribas resultados de vuelta de forma explícita.

¿Puede un robot con arrays reemplazar a toda mi tripulación?

No debería. Mantén especialistas y mensajeros separados, y contrata en el orden de Prioridad de automatización.