Skip to content

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

1 watching

Forks

Repository files navigation

🖌️ BrushBot-3000

Programa a un robot pintor renacentista en tu propio lenguaje de scripting.

BrushBot-3000 es una aplicación de escritorio hecha con Godot 4 y C# en la que escribes código en un lenguaje propio, BrushScript, y ves cómo un bot lo ejecuta paso a paso sobre un lienzo de píxeles. Incluye un intérprete completo escrito desde cero: analizador léxico, sintáctico, semántico y evaluador.

BrushBot-3000

Licencia: MIT Godot 4 C# Ask DeepWiki


Qué hace

  • Un lenguaje propio. Instrucciones de dibujo (DrawLine, DrawCircle, DrawRectangle, Fill, SetPixel), control del pincel (Spawn, Respawn, Color, Size), variables, expresiones aritméticas y booleanas, y control de flujo con etiquetas y saltos condicionales (GoTo [etiqueta] (condición)).
  • Errores en vivo. Mientras escribes, las líneas con errores léxicos, sintácticos o semánticos se resaltan en rojo y el mensaje aparece en la terminal integrada. No puedes ejecutar hasta resolverlos.
  • Ejecución animada. El bot dibuja paso a paso, con la velocidad ajustable desde un slider, o de golpe con Skip.
  • Lienzo configurable de 1×1 a 256×256 píxeles.
  • Colores predefinidos y personalizados con RGBA(r, g, b, a). El blanco actúa como borrador.

Interfaz


Empezar

Requisitos: Godot 4.x — versión .NET/Mono y el .NET SDK 10 (o el que indique BrushBot3000.csproj).

git clone https://github.com/andr-migue/BrushBot-3000
cd BrushBot-3000

Abre Godot, pulsa Importar, selecciona project.godot y deja que compile la solución de C#. Después, F5 para ejecutar.

Tu primer script

Spawn(32, 32)
Color("Yellow")
Size(3)
DrawCircle(0, 0, 10)
Fill()
Color("Orange")
DrawCircle(0, 0, 4)

Todo programa empieza por Spawn(x, y). A partir de ahí, escribe en el editor de la izquierda y pulsa ▶️. La referencia completa del lenguaje está en el panel lateral de la aplicación y en docs/brushscript.md.

Ejecución


Ejemplos

En examples/ hay scripts listos para cargar desde la aplicación:

Script Qué muestra
spiral.pw Bucle con etiqueta y salto condicional
heart.pw El mínimo imprescindible, en 13 líneas
flower.pw Composición con Fill y varios colores
fibonacci.pw Aritmética y variables
control_flow.pw Saltos, condiciones y Respawn
print_numbers.pw Salida por la terminal con Print
doll.pw, one_piece.pw Dibujos más elaborados

examples/generated/ contiene scripts generados automáticamente a partir de imágenes con la herramienta tools/image_to_pw: son miles de SetPixel seguidos, pensados para ver el bot pintar una foto entera.


Errores

El sistema de errores distingue las cuatro etapas y siempre apunta a línea y columna:

Etapa Ejemplo
Léxico Carácter inesperado, cadena sin cerrar
Sintáctico Paréntesis desbalanceados, argumentos que faltan
Semántico Variable no declarada, tipo incorrecto, etiqueta inexistente
Ejecución División por cero, dibujar fuera del lienzo

Las tres primeras etapas acumulan todos los errores y los muestran juntos, en lugar de parar en el primero.

Errores


Estructura del proyecto

assets/        texturas, iconos, fuente y música
docs/          referencia del lenguaje y arquitectura
examples/      scripts .pw de ejemplo
scenes/        escenas de Godot (main.tscn, brush.tscn)
src/
  Language/    el intérprete, en C# puro y sin dependencias de Godot
  App/         la capa de Godot: UI, dibujado del lienzo y del pincel
tools/         utilidad en Python para convertir imágenes en scripts .pw

El intérprete no conoce a Godot y la capa de Godot no conoce la gramática: se comunican a través de un único objeto Context. El detalle está en docs/architecture.md.


Licencia

Código bajo MIT. Los recursos de assets/ son de terceros y mantienen sus propias licencias — ver CREDITS.md.

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages