Byt namn till metro-puzzle-jp (Gitea-repots namn)

Mapp, Go-modul, binär, VS Code-sökvägar, dokumentation och visningsnamn
följer nu repots namn på Gitea. Arbetsnamnet jp-subway-pussel finns kvar
som historik i spelbeskrivningen §15.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
2026-10-23 19:02:41 +02:00
parent c1f9546af6
commit ae50d444a4
13 changed files with 42 additions and 42 deletions

8
.vscode/launch.json vendored
View File

@@ -8,7 +8,7 @@
"type": "go", "type": "go",
"request": "launch", "request": "launch",
"mode": "debug", "mode": "debug",
"program": "${workspaceFolder}/cmd/jp-subway-pussel", "program": "${workspaceFolder}/cmd/metro-puzzle-jp",
"cwd": "${workspaceFolder}", "cwd": "${workspaceFolder}",
"args": ["-level", "001-flygplatsen"], "args": ["-level", "001-flygplatsen"],
"env": {} "env": {}
@@ -19,8 +19,8 @@
"request": "launch", "request": "launch",
"mode": "exec", "mode": "exec",
"preLaunchTask": "build", "preLaunchTask": "build",
"program": "${workspaceFolder}/build/debug/jp-subway-pussel", "program": "${workspaceFolder}/build/debug/metro-puzzle-jp",
"windows": { "program": "${workspaceFolder}/build/debug/jp-subway-pussel.exe" }, "windows": { "program": "${workspaceFolder}/build/debug/metro-puzzle-jp.exe" },
"cwd": "${workspaceFolder}/build/debug" "cwd": "${workspaceFolder}/build/debug"
}, },
{ {
@@ -29,7 +29,7 @@
"request": "launch", "request": "launch",
"mode": "exec", "mode": "exec",
"preLaunchTask": "build: release (linux-amd64)", "preLaunchTask": "build: release (linux-amd64)",
"program": "${workspaceFolder}/build/release/linux-amd64/jp-subway-pussel", "program": "${workspaceFolder}/build/release/linux-amd64/metro-puzzle-jp",
"cwd": "${workspaceFolder}/build/release/linux-amd64" "cwd": "${workspaceFolder}/build/release/linux-amd64"
}, },
{ {

View File

@@ -1,4 +1,4 @@
# JP Subway Pussel # Metro Puzzle JP
Pixel art-pusselspel: leda ett sällskap – *lämmeltåget* – genom japanska Pixel art-pusselspel: leda ett sällskap – *lämmeltåget* – genom japanska
tågstationer byggda som labyrinter, hitta rätt tåg och komma fram till rätt tågstationer byggda som labyrinter, hitta rätt tåg och komma fram till rätt
@@ -30,11 +30,11 @@ sudo apt install golang gcc libc6-dev pkg-config libgl1-mesa-dev libx11-dev libx
``` ```
```bash ```bash
git clone <remote>/jp-subway-pussel.git && cd jp-subway-pussel git clone <remote>/metro-puzzle-jp.git && cd metro-puzzle-jp
go run ./tools/build # debug → build/debug/ go run ./tools/build # debug → build/debug/
go run ./tools/build -mode release -os linux # release → build/release/linux-amd64/ go run ./tools/build -mode release -os linux # release → build/release/linux-amd64/
go run ./tools/build -mode release -os windows # korsbygge → build/release/windows-amd64/ go run ./tools/build -mode release -os windows # korsbygge → build/release/windows-amd64/
./build/debug/jp-subway-pussel # kör ./build/debug/metro-puzzle-jp # kör
go test ./... # tester go test ./... # tester
``` ```
@@ -43,7 +43,7 @@ go test ./... # tester
Installera Go från <https://go.dev/dl/>. Ingen C-kompilator behövs. Installera Go från <https://go.dev/dl/>. Ingen C-kompilator behövs.
```powershell ```powershell
go run ./tools/build -mode release # → build\release\windows-amd64\jp-subway-pussel.exe go run ./tools/build -mode release # → build\release\windows-amd64\metro-puzzle-jp.exe
``` ```
### VS Code ### VS Code
@@ -62,14 +62,14 @@ go run ./tools/build -mode release # → build\release\windows-amd64\jp-s
``` ```
build/ build/
├── debug/ debug-bygge för den här datorn ├── debug/ debug-bygge för den här datorn
│ ├── jp-subway-pussel │ ├── metro-puzzle-jp
│ └── resources/ │ └── resources/
└── release/ └── release/
├── linux-amd64/ ├── linux-amd64/
│ ├── jp-subway-pussel en strippad binär │ ├── metro-puzzle-jp en strippad binär
│ └── resources/ sprites/ sound/ text/ data/ │ └── resources/ sprites/ sound/ text/ data/
└── windows-amd64/ └── windows-amd64/
├── jp-subway-pussel.exe ├── metro-puzzle-jp.exe
└── resources/ └── resources/
``` ```
@@ -80,10 +80,10 @@ arbetskatalogen (så `go run` och F5 fungerar), och `JP_RESOURCES=/sökväg`
### Flaggor ### Flaggor
``` ```
jp-subway-pussel -level 001-flygplatsen # starta en viss bana metro-puzzle-jp -level 001-flygplatsen # starta en viss bana
jp-subway-pussel -scale 3 # fönsterstorlek (320x180 × skala) metro-puzzle-jp -scale 3 # fönsterstorlek (320x180 × skala)
jp-subway-pussel -smoke 90 # öppna fönster, avsluta efter 90 bildrutor (smoke-test) metro-puzzle-jp -smoke 90 # öppna fönster, avsluta efter 90 bildrutor (smoke-test)
jp-subway-pussel -version metro-puzzle-jp -version
``` ```
## Beroenden ## Beroenden
@@ -108,7 +108,7 @@ vid körning, så den fungerar på alla vanliga distributioner.
## Struktur i korthet ## Struktur i korthet
``` ```
cmd/jp-subway-pussel/ programstart cmd/metro-puzzle-jp/ programstart
internal/game/ Ebitengine-loop och rendering (enda paketet som får känna till Ebitengine) internal/game/ Ebitengine-loop och rendering (enda paketet som får känna till Ebitengine)
internal/level/ banformat, validering, framkomlighet internal/level/ banformat, validering, framkomlighet
internal/res/ hittar och läser resources/ internal/res/ hittar och läser resources/

View File

@@ -1,4 +1,4 @@
// jp-subway-pussel – pixel art-pussel om att hitta rätt tåg på japanska stationer. // metro-puzzle-jp – pixel art-pussel om att hitta rätt tåg på japanska stationer.
package main package main
import ( import (
@@ -9,8 +9,8 @@ import (
"github.com/hajimehoshi/ebiten/v2" "github.com/hajimehoshi/ebiten/v2"
"gitea.brasse-pc.eu/brasse/jp-subway-pussel/internal/buildinfo" "gitea.brasse-pc.eu/brasse/metro-puzzle-jp/internal/buildinfo"
"gitea.brasse-pc.eu/brasse/jp-subway-pussel/internal/game" "gitea.brasse-pc.eu/brasse/metro-puzzle-jp/internal/game"
) )
func main() { func main() {
@@ -21,7 +21,7 @@ func main() {
flag.Parse() flag.Parse()
if *version { if *version {
fmt.Printf("jp-subway-pussel %s (%s)\n", buildinfo.Version, buildinfo.Mode) fmt.Printf("metro-puzzle-jp %s (%s)\n", buildinfo.Version, buildinfo.Mode)
return return
} }
@@ -31,7 +31,7 @@ func main() {
} }
ebiten.SetWindowSize(game.ScreenW**scale, game.ScreenH**scale) ebiten.SetWindowSize(game.ScreenW**scale, game.ScreenH**scale)
ebiten.SetWindowTitle("JP Subway Pussel") ebiten.SetWindowTitle("Metro Puzzle JP")
ebiten.SetWindowResizingMode(ebiten.WindowResizingModeEnabled) ebiten.SetWindowResizingMode(ebiten.WindowResizingModeEnabled)
ebiten.SetVsyncEnabled(true) ebiten.SetVsyncEnabled(true)

View File

@@ -65,7 +65,7 @@ att bygga på Linux som på Windows.
| 2. Data | Allt under `resources/` | Datadrivna tester som läser filerna | `go test ./...` | | 2. Data | Allt under `resources/` | Datadrivna tester som läser filerna | `go test ./...` |
| 3. Arkitektur | Beroenderegler | `internal/archtest` | `go test ./...` | | 3. Arkitektur | Beroenderegler | `internal/archtest` | `go test ./...` |
| 4. Simulering | En bot spelar en bana headless | Deterministisk körning av spelloopen utan rendering (kommande) | `go test ./...` | | 4. Simulering | En bot spelar en bana headless | Deterministisk körning av spelloopen utan rendering (kommande) | `go test ./...` |
| 5. Smoke | Binären öppnar fönster och avslutar | `jp-subway-pussel -smoke 90` | manuellt / med skärm | | 5. Smoke | Binären öppnar fönster och avslutar | `metro-puzzle-jp -smoke 90` | manuellt / med skärm |
| 6. Speltest | Känsla, svårighet, buggar | Checklistan nedan | före varje release | | 6. Speltest | Känsla, svårighet, buggar | Checklistan nedan | före varje release |
### Tester som finns i dag ### Tester som finns i dag

View File

@@ -1,4 +1,4 @@
# jp-subway-pussel – plan # metro-puzzle-jp – plan
Navet för projektets dokumentation. Detaljerna ligger i de länkade filerna. Navet för projektets dokumentation. Detaljerna ligger i de länkade filerna.
@@ -28,7 +28,7 @@ Mönster A enligt playbooken (nedladdningsbar binär), när projektet ska
delas: `build/release/<os>-<arch>/` är redan formen som en release-zip ska delas: `build/release/<os>-<arch>/` är redan formen som en release-zip ska
ha. Repot är **lokalt** nu och synkas till Gitea senare (Björn skapar repot ha. Repot är **lokalt** nu och synkas till Gitea senare (Björn skapar repot
och lägger till `claude` som medlem, därefter `git remote add origin och lägger till `claude` som medlem, därefter `git remote add origin
gitea-claude:brasse/jp-subway-pussel.git`). gitea-claude:brasse/metro-puzzle-jp.git`).
## Milstolpar ## Milstolpar
@@ -56,7 +56,7 @@ Vad som ska vara testat per milstolpe: [mal-och-tester.md](mal-och-tester.md).
## Öppna frågor ## Öppna frågor
- Repo-namn: behålla `pussel` (svenska) eller byta till `puzzle`? - ~~Repo-namn~~ – beslutat: `metro-puzzle-jp` (Gitea 2026-10-23). Visningsnamnet "Metro Puzzle JP" är bara text i `resources/text/`.
- "Game box-liknande" banval: tolkat som spelbräde/världskarta – stämmer det? - "Game box-liknande" banval: tolkat som spelbräde/världskarta – stämmer det?
- Font: PixelMplus (fler kanji, 10/12 px) eller Misaki (8 px, tajtare)? - Font: PixelMplus (fler kanji, 10/12 px) eller Misaki (8 px, tajtare)?
Avgörs i M3 när skyltar renderas på riktigt. Avgörs i M3 när skyltar renderas på riktigt.

View File

@@ -17,7 +17,7 @@ de styr hur milstolparna byggs.
| Font | **PixelMplus** (10/12 px) eller **Misaki** (8 px) via `ebiten/v2/text/v2` | Pixelfonter med kana **och kanji**. Fri licens. Krävs för att skyltar ska kunna visas på riktigt. Beslut i M3. | | Font | **PixelMplus** (10/12 px) eller **Misaki** (8 px) via `ebiten/v2/text/v2` | Pixelfonter med kana **och kanji**. Fri licens. Krävs för att skyltar ska kunna visas på riktigt. Beslut i M3. |
| Ljud | `ebiten/v2/audio` med OGG Vorbis (musik, jinglar) och WAV (korta effekter) | Ingår i Ebitengine, inga externa bibliotek. | | Ljud | `ebiten/v2/audio` med OGG Vorbis (musik, jinglar) och WAV (korta effekter) | Ingår i Ebitengine, inga externa bibliotek. |
| Slump | `math/rand/v2` (PCG) genom `internal/rng` | Seedbart, deterministiskt, del-seeds per kontext. | | Slump | `math/rand/v2` (PCG) genom `internal/rng` | Seedbart, deterministiskt, del-seeds per kontext. |
| Sparfiler | JSON i `os.UserConfigDir()/jp-subway-pussel/` | Rätt plats på både Linux (`~/.config`) och Windows (`%AppData%`). | | Sparfiler | JSON i `os.UserConfigDir()/metro-puzzle-jp/` | Rätt plats på både Linux (`~/.config`) och Windows (`%AppData%`). |
| Versionshantering | Git, lokalt nu, Gitea senare | Enligt playbooken; CI-release när projektet är redo att delas. | | Versionshantering | Git, lokalt nu, Gitea senare | Enligt playbooken; CI-release när projektet är redo att delas. |
### Varför inte … ### Varför inte …
@@ -51,8 +51,8 @@ de styr hur milstolparna byggs.
### Katalogstruktur ### Katalogstruktur
``` ```
jp-subway-pussel/ metro-puzzle-jp/
├── cmd/jp-subway-pussel/ main.go – flaggor, fönster, startar spelet ├── cmd/metro-puzzle-jp/ main.go – flaggor, fönster, startar spelet
├── internal/ ├── internal/
│ ├── buildinfo/ version + läge (sätts av byggverktyget) │ ├── buildinfo/ version + läge (sätts av byggverktyget)
│ ├── res/ hittar och läser resources/ (ren Go) │ ├── res/ hittar och läser resources/ (ren Go)
@@ -76,14 +76,14 @@ jp-subway-pussel/
| Vad | Kommando | Resultat | | Vad | Kommando | Resultat |
|-----|----------|----------| |-----|----------|----------|
| Debug (standard, Ctrl+Shift+B) | `go run ./tools/build` | `build/debug/jp-subway-pussel` + `resources/`; inga optimeringar, full debuginfo | | Debug (standard, Ctrl+Shift+B) | `go run ./tools/build` | `build/debug/metro-puzzle-jp` + `resources/`; inga optimeringar, full debuginfo |
| Debug med debugger (F5) | VS Code "Debug (dlv)" | Kompilerar och startar under delve med cwd = repots rot | | Debug med debugger (F5) | VS Code "Debug (dlv)" | Kompilerar och startar under delve med cwd = repots rot |
| Release Linux | `go run ./tools/build -mode release -os linux -arch amd64` | `build/release/linux-amd64/` – strippad, `-trimpath` | | Release Linux | `go run ./tools/build -mode release -os linux -arch amd64` | `build/release/linux-amd64/` – strippad, `-trimpath` |
| Release Windows | `go run ./tools/build -mode release -os windows -arch amd64` | `build/release/windows-amd64/jp-subway-pussel.exe` – GUI-subsystem, inget konsolfönster | | Release Windows | `go run ./tools/build -mode release -os windows -arch amd64` | `build/release/windows-amd64/metro-puzzle-jp.exe` – GUI-subsystem, inget konsolfönster |
| Tester | `go test ./...` | | | Tester | `go test ./...` | |
Versionen i binären kommer från `git describe --tags --always --dirty`, Versionen i binären kommer från `git describe --tags --always --dirty`,
så en tagg `v0.1.0` ger `jp-subway-pussel v0.1.0` i `-version`. så en tagg `v0.1.0` ger `metro-puzzle-jp v0.1.0` i `-version`.
## Milstolpar ## Milstolpar

View File

@@ -1,4 +1,4 @@
# JP Subway Pussel – spelbeskrivning # Metro Puzzle JP – spelbeskrivning
Renskriven och omsorterad version av den ursprungliga idébeskrivningen Renskriven och omsorterad version av den ursprungliga idébeskrivningen
(2026-10-23). Allt innehåll från originalet finns med; där originalet var (2026-10-23). Allt innehåll från originalet finns med; där originalet var
@@ -186,4 +186,4 @@ från skills i skill tree, och från unika skills man får av sidouppdrag.
| "Lämel tåg" | *Lämmeltåg*: sällskapet som följer efter dig i rad | Styr §5 | | "Lämel tåg" | *Lämmeltåg*: sällskapet som följer efter dig i rad | Styr §5 |
| "level maps game box liknande styl av level väljande" | Bankarta i spelbrädes-/världskartestil | Kan ändras om något annat avsågs | | "level maps game box liknande styl av level väljande" | Bankarta i spelbrädes-/världskartestil | Kan ändras om något annat avsågs |
| "bilder och eventuella språk och tester" (resursmappen) | bilder, språk och *texter* | Se resurslayouten i roadmap | | "bilder och eventuella språk och tester" (resursmappen) | bilder, språk och *texter* | Se resurslayouten i roadmap |
| Repo-namnet "jp-subway-pussel" | Behållet; *pussel* är korrekt svenska | Byt till `-puzzle` om det ska vara helengelskt | | Repo-namnet | Arbetsnamnet var "jp-subway-pussel"; Björn döpte Gitea-repot till **metro-puzzle-jp** (2026-10-23), så repo, modul, binär och titel heter så | Spelets visningsnamn "Metro Puzzle JP" kan ändras fritt i `resources/text/*.json` |

2
go.mod
View File

@@ -1,4 +1,4 @@
module gitea.brasse-pc.eu/brasse/jp-subway-pussel module gitea.brasse-pc.eu/brasse/metro-puzzle-jp
go 1.27 go 1.27

View File

@@ -11,9 +11,9 @@ import (
"github.com/hajimehoshi/ebiten/v2/ebitenutil" "github.com/hajimehoshi/ebiten/v2/ebitenutil"
"github.com/hajimehoshi/ebiten/v2/inpututil" "github.com/hajimehoshi/ebiten/v2/inpututil"
"gitea.brasse-pc.eu/brasse/jp-subway-pussel/internal/buildinfo" "gitea.brasse-pc.eu/brasse/metro-puzzle-jp/internal/buildinfo"
"gitea.brasse-pc.eu/brasse/jp-subway-pussel/internal/level" "gitea.brasse-pc.eu/brasse/metro-puzzle-jp/internal/level"
"gitea.brasse-pc.eu/brasse/jp-subway-pussel/internal/res" "gitea.brasse-pc.eu/brasse/metro-puzzle-jp/internal/res"
) )
// Intern upplösning. Allt ritas i denna storlek och skalas sedan upp med // Intern upplösning. Allt ritas i denna storlek och skalas sedan upp med
@@ -125,7 +125,7 @@ func (g *Game) Draw(screen *ebiten.Image) {
name = "FEL: " + g.levelError.Error() name = "FEL: " + g.levelError.Error()
} }
ebitenutil.DebugPrint(screen, fmt.Sprintf( ebitenutil.DebugPrint(screen, fmt.Sprintf(
"JP Subway Pussel %s (%s) %.0f fps\nBana: %s\nResurser: %s\nESC avslutar", "Metro Puzzle JP %s (%s) %.0f fps\nBana: %s\nResurser: %s\nESC avslutar",
buildinfo.Version, buildinfo.Mode, ebiten.ActualFPS(), name, g.resDir)) buildinfo.Version, buildinfo.Mode, ebiten.ActualFPS(), name, g.resDir))
} }

View File

@@ -6,7 +6,7 @@ import (
"strings" "strings"
"testing" "testing"
"gitea.brasse-pc.eu/brasse/jp-subway-pussel/internal/res" "gitea.brasse-pc.eu/brasse/metro-puzzle-jp/internal/res"
) )
const sample = `{ const sample = `{

View File

@@ -1,5 +1,5 @@
{ {
"game.title": "JP Subway Puzzle", "game.title": "Metro Puzzle JP",
"menu.start": "Start", "menu.start": "Start",
"menu.continue": "Continue", "menu.continue": "Continue",
"menu.endless": "Endless mode", "menu.endless": "Endless mode",

View File

@@ -1,5 +1,5 @@
{ {
"game.title": "JP Subway Pussel", "game.title": "Metro Puzzle JP",
"menu.start": "Starta", "menu.start": "Starta",
"menu.continue": "Fortsätt", "menu.continue": "Fortsätt",
"menu.endless": "Oändligt läge", "menu.endless": "Oändligt läge",

View File

@@ -22,7 +22,7 @@ import (
) )
const ( const (
appName = "jp-subway-pussel" appName = "metro-puzzle-jp"
mainPkg = "./cmd/" + appName mainPkg = "./cmd/" + appName
) )