TIMELINE 20 saves
ATLAS 119 files ⇓ bundle
HISTORY 20 saves
details
Vegeta
Vegeta 1.2.3 is a terminal puzzle game for learning V from first declarations through ORM, C interoperability, compile-time reflection, unsafe code, and cross-platform builds.
It contains 100 compiler-gated puzzles: 20 concepts with one level at each consistent difficulty.
- Trace — copy a visible reference.
- Modify — change working code.
- Fill-in — replace a compiling placeholder.
- Assemble — reorder supplied fragments.
- Blank — write the program from a plain-language task.
Requirements
- V 0.5.2 or newer available as
v. - Bobatea installed with
v install tauraamui.bobatea. v-analyzerfor live semantic highlighting and diagnostics. Vegeta checksV_ANALYZER, then$XDG_CONFIG_HOME/v-analyzer/bin/v-analyzer, thenPATH.- An 80×24 or larger terminal.
- SQLite development/runtime support for the ORM curriculum validation.
The interface uses Bobatea; learner programs run through the installed V compiler.
Run
v run .
Useful non-interactive commands:
v run . --list
v run . --validate
v test .
v fmt -verify *.v
v vet .
v -o vegeta .
--validate compiles and runs every reference, starter, and solution, then compares every solution with its declared output. Loading also rejects duplicate IDs, malformed puzzles, concepts without exactly five levels, and concepts missing any difficulty mode.
Controls
In the concept menu, use Up/Down and Enter. It opens the next unsolved difficulty; completed concepts remain open.
In a normal puzzle:
- type and edit with the standard cursor, Home, End, Backspace, Delete, Enter, and Tab keys; indentation uses four spaces and delimiters auto-pair;
Ctrl-Rcompiles/runs the answer;Ctrl-Hreveals the short hint;Ctrl-N/Ctrl-Pmoves to the next/previous difficulty;Ctrl-MorEscreturns to the concept menu;Escfrom the concept menu quits.
In Assemble, Up/Down selects a fragment and Left/Right moves it. The lower-left pane always shows the resulting V source.
Interface
The game view always uses three panes:
- upper left: problem, starter/reference, or fragments;
- lower left: learner input with auto-indentation and highlighting;
- full-height right: only the explanation and optional hint needed for the current concept.
Compiler failures show raw V output. Output failures show expected versus actual text. Learner programs that run longer than five seconds are terminated so they cannot freeze the game. Solved IDs are stored as JSON at the platform configuration path under vegeta/progress.json.
Sources
The curriculum follows the official V documentation, checked 2026-08-25 (the page reported an update on 2026-08-17). The local textbook The V Programming Language: A Comprehensive Textbook Guide was supplementary. Where examples or terminology differed, the official site and installed V 0.5.2 compiler won.
v-analyzer supplies the live language-server layer. Larpon/vee was reviewed for editor behavior; its experimental buffer was not imported because this game needs one small buffer while highlighting and diagnostics already come from v-analyzer.
See curriculum coverage for the official-topic mapping and the design specification for the learning rationale.