Implement Snake game for JLine3 terminal #1385
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This PR implements a classic Snake game for JLine3 as requested in issue #1317. The game demonstrates JLine3's advanced terminal UI capabilities using the Display class for fullscreen rendering. It is available directly as a demo:
./build demo snake.Features
Game Features
Controls
Visual Design and Effects
Options Menu (press 'm')
Technical Implementation
Architecture
org.jline.builtins.SnakeCommands.snake(...)org.jline.demo.SnakeDemowired to./build demo snakeDisplayBindingReaderandKeyMapFiles Added/Modified
snakeUsage
./build demo snakenew Snake(terminal).run()Testing and Build
This game both entertains and showcases JLine3 for fullscreen TUI apps, real-time input, and efficient rendering.
Fixes #1317