Skip to content

Releases: milesapnash/JavaSnake

v1.1.0

24 May 18:25
2a0a4c5

Choose a tag to compare

Improve pipeline, test coverage, and add progressive speed-up

-Add Checkstyle and SpotBugs to CI with Maven verify phase
-Replace java.awt.Point with a Position record
-Add win condition and full-game integration tests
-Add progressive speed-up as the snake grows
-Update README.md

v1.0.0

23 May 18:44
cb232e0

Choose a tag to compare

refactor: simplify game code, add CI

- Moved all classes into com.mapna.snake package
- Encapsulated Snake state: owns its own movement, protects body list with unmodifiable view, uses HashSet<Point> for O(1) collision checks
- Extracted game logic into testable GameEngine with injectable Random
- Added WON game state when snake fills the board
- Optimised food placement to enumerate free cells instead of retry loop
- Eliminated magic floats and duplicated direction/paint logic in BoardRenderer
- Extracted constants (HIGHSCORE_FILE, INITIAL_LENGTH, fonts) and removed excess final keywords
- Fixed rendering fragility: score overlay now sets its own font/color explicitly instead of relying on side-effects from paintTitles
- Removed unnecessary defensive copies on GameState.food
- Added SnakeTest (12 tests) and FileHighScoreStoreTest (9 tests)
- Added GitHub Actions CI pipeline (compile + test on push/PR)
- Added maven-shade-plugin for runnable JAR packaging