AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
Cometa es un lenguaje de programación tipado con sintaxis en español. Sirve para aprender a programar y para crear juegos y herramientas. Compila a Go.
Translation pending
Developer toolsGo · HTMLGitHub @crsolverOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
lenguaje de programación en español
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Cometa es un lenguaje de programación con sintaxis en español, pensado para aprender y para hacer juegos 2D por diversión. Los bloques se marcan con tabuladores, los tipos son estáticos y el programa se traduce a Go.Read the full README ↗
Cometa es un lenguaje de programación con sintaxis en español, pensado para aprender y para hacer juegos 2D por diversión. Los bloques se marcan con tabuladores, los tipos son estáticos y el programa se traduce a Go.
usar std/mate
usar std/pincel
usar std/pincel/graficos
tipo Partida
pos mate.Vec2
pub fn actualizar(dt decimal)
@pos.x += 40 * dt
pub fn pintar()
graficos.rectangulo_v(@pos, {10, 10}, .Rojo)
fn inicio()
pincel.ejecutar(Partida {}, titulo = "Mi juego") atrapar |error|
imprimir(error)
cometa de la página de versiones y ponlo en tu PATH.COMETA_GO..vsix de la misma página; los pasos están en docs/empezar.md.cometa --version
cometa nuevo hola
cd hola
cometa ejecutar principal.cometa
Para un juego, usa cometa nuevo mi_juego --juego. La primera vez se descargan las dependencias del juego (hace falta internet); después es rápido. La guía completa está en docs/empezar.md.
| Quiero… | Lee |
|---|---|
| Ver programas cortos y comentados, de menor a mayor dificultad | examples/ |
| Hacer un juego | docs/juegos.md |
| Dibujar mis propios sprites con código | docs/lienzo.md |
| Animar con curvas de suavizado | docs/curvas.md |
| Generar terrenos con ruido | docs/ruido.md |
| Crear menús y paneles | docs/ui.md |
| Consultar todas las reglas del lenguaje | specs.md |
| Comando | Qué hace |
|---|---|
cometa nuevo <nombre> [--juego] [--sin-agentes] | Crea un proyecto listo para ejecutar, con AGENTS.md para asistentes de IA (que actúan como profesor). |
cometa ejecutar <archivo> | Compila y ejecuta. |
cometa construir <archivo> -o <salida> | Genera un ejecutable con todos los recursos incluidos. |
cometa captura <juego> -o <png> | Ejecuta un juego con la ventana oculta y guarda una captura. |
cometa mapa | Abre el editor de mapas en el navegador. |
cometa compilar <archivo> -o <salida.go> | Genera el código Go. |
cometa lsp | Inicia el servidor de lenguaje para el editor. |
enum Estado
Menu
Jugando
Fin
fn describir(estado Estado) cadena
casos estado
.Menu => "menú"
.Jugando => "jugando"
.Fin => "fin"
fn inicio()
var puntos = 0
mientras puntos < 3
puntos += 1
var texto = "42".a_entero() o 0
imprimir("${describir(.Jugando)}: ${puntos + texto}")
Además tiene listas, mapas [cadena: entero], opcionales (T?), resultados (T!), interfaces, genéricos, módulos con usar y casos sobre enums, números y textos. Todo está descrito en specs.md.
El repositorio contiene el compilador y el servidor de lenguaje (Go) y la extensión de VS Code (TypeScript). Consulta AGENTS.md para las convenciones del proyecto.
go test ./...
go vet ./...
cd vscode-extension
npm install
npm run build
npm run build compila el cliente y deja el ejecutable en vscode-extension/bin/. Para probar la extensión, abre el repositorio en VS Code, pulsa F5 y elige Run Cometa Extension. Si el servidor está en otra ruta, configura cometa.server.path; los fallos de arranque aparecen en Salida → Cometa Language Server.
El paquete github.com/crsolver/cometa/pkg/cometa es la API estable para otros programas Go (por ejemplo, un servidor que compila proyectos de sus usuarios) y no requiere lanzar el ejecutable. Acepta un archivo en disco o un proyecto en memoria, y devuelve el Go generado o un *cometa.Error con diagnósticos (archivo, línea, columna, etapa y mensaje; mismos nombres JSON que cometa probar --json):
archivos := map[string][]byte{
"principal.cometa": []byte("usar mundo/mapa\nfn inicio()\n\timprimir(mapa.ancho())\n"),
"mundo/mapa.cometa": []byte("pub fn ancho() entero 16\n"),
}
codigoGo, err := cometa.Compile("principal.cometa", cometa.Options{Files: archivos})
var e *cometa.Error
if errors.As(err, &e) {
for _, d := range e.Diagnostics {
fmt.Println(d.File, d.Line, d.Column, d.Message)
}
}
cometa.Check hace el mismo análisis sin generar código. Añádelo a tu módulo con go get github.com/crsolver/cometa@latest. Todo lo que está bajo internal/ puede cambiar sin aviso.
Licencia: MIT.
Las asperezas conocidas del lenguaje y la biblioteca están en MEJORAS.md.