Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
70bca27
refactor: add INITIAL_LENGTH and remove head from Snake class
milesapnash May 23, 2026
7295a63
refactor: encapsulate Snake state to own movement, protect body list
milesapnash May 23, 2026
a720fbd
refactor: eliminate duplicated direction logic
milesapnash May 23, 2026
4668570
refactor: deduplicate BoardRenderer paint methods
milesapnash May 23, 2026
ddea9d1
refacotr: make opposite logic cleaner in Direction.java
milesapnash May 23, 2026
7c47186
refactor: extract HIGHSCORE_FILE
milesapnash May 23, 2026
fd91cc7
refactor: make TITLE_FONT / CAPTION_FONT constants
milesapnash May 23, 2026
ab84536
refactor: simplify Snake movement
milesapnash May 23, 2026
d85ef06
refactor: eliminate magic floating-point multipliers from BoardRenderer
milesapnash May 23, 2026
8adb157
refactor: pass random through Snake constructor
milesapnash May 23, 2026
5b04166
refactor: encapsulate NextDirection in GameEngine
milesapnash May 23, 2026
60b548d
refactor: add a HashSet<Point> to Snake to improve performance
milesapnash May 23, 2026
357a384
refactor: remove excess final keywords
milesapnash May 23, 2026
6bf4405
refactor: various antipattern fixes
milesapnash May 23, 2026
7d85d14
refactor: update docs, variable names, lint
milesapnash May 23, 2026
548ffbf
fix: behaviour fixes
milesapnash May 23, 2026
cfb0f95
feat: add packages, WON game state and optimise food placement loop
milesapnash May 23, 2026
6e59e2e
refactor: simplify paint, remove defensive copy
milesapnash May 23, 2026
5e35b9a
test: add snake, high score tests
milesapnash May 23, 2026
17cb02e
feat: CI pipeline & maven package
milesapnash May 23, 2026
d9a9cf2
Add build to CI
milesapnash May 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: CI

on:
push:
branches: [main]
tags: ['v*']
pull_request:
branches: [main]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21
cache: maven

- run: mvn verify --batch-mode --no-transfer-progress

- run: mvn package --batch-mode --no-transfer-progress -DskipTests

- uses: actions/upload-artifact@v4
with:
name: javasnake
path: target/javasnake-*.jar

release:
needs: build
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/download-artifact@v4
with:
name: javasnake

- uses: softprops/action-gh-release@v2
with:
files: javasnake-*.jar
20 changes: 19 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,30 @@
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.6.0</version>
<executions>
<execution>
<phase>package</phase>
<goals><goal>shade</goal></goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.mapna.snake.Game</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<mainClass>Game</mainClass>
<mainClass>com.mapna.snake.Game</mainClass>
</configuration>
</plugin>
</plugins>
Expand Down
129 changes: 0 additions & 129 deletions src/main/java/BoardRenderer.java

This file was deleted.

13 changes: 0 additions & 13 deletions src/main/java/Direction.java

This file was deleted.

88 changes: 0 additions & 88 deletions src/main/java/GameEngine.java

This file was deleted.

76 changes: 0 additions & 76 deletions src/main/java/Snake.java

This file was deleted.

Loading
Loading