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:
8
.vscode/launch.json
vendored
8
.vscode/launch.json
vendored
@@ -8,7 +8,7 @@
|
||||
"type": "go",
|
||||
"request": "launch",
|
||||
"mode": "debug",
|
||||
"program": "${workspaceFolder}/cmd/jp-subway-pussel",
|
||||
"program": "${workspaceFolder}/cmd/metro-puzzle-jp",
|
||||
"cwd": "${workspaceFolder}",
|
||||
"args": ["-level", "001-flygplatsen"],
|
||||
"env": {}
|
||||
@@ -19,8 +19,8 @@
|
||||
"request": "launch",
|
||||
"mode": "exec",
|
||||
"preLaunchTask": "build",
|
||||
"program": "${workspaceFolder}/build/debug/jp-subway-pussel",
|
||||
"windows": { "program": "${workspaceFolder}/build/debug/jp-subway-pussel.exe" },
|
||||
"program": "${workspaceFolder}/build/debug/metro-puzzle-jp",
|
||||
"windows": { "program": "${workspaceFolder}/build/debug/metro-puzzle-jp.exe" },
|
||||
"cwd": "${workspaceFolder}/build/debug"
|
||||
},
|
||||
{
|
||||
@@ -29,7 +29,7 @@
|
||||
"request": "launch",
|
||||
"mode": "exec",
|
||||
"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"
|
||||
},
|
||||
{
|
||||
|
||||
24
README.md
24
README.md
@@ -1,4 +1,4 @@
|
||||
# JP Subway Pussel
|
||||
# Metro Puzzle JP
|
||||
|
||||
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
|
||||
@@ -30,11 +30,11 @@ sudo apt install golang gcc libc6-dev pkg-config libgl1-mesa-dev libx11-dev libx
|
||||
```
|
||||
|
||||
```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 -mode release -os linux # release → build/release/linux-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
|
||||
```
|
||||
|
||||
@@ -43,7 +43,7 @@ go test ./... # tester
|
||||
Installera Go från <https://go.dev/dl/>. Ingen C-kompilator behövs.
|
||||
|
||||
```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
|
||||
@@ -62,14 +62,14 @@ go run ./tools/build -mode release # → build\release\windows-amd64\jp-s
|
||||
```
|
||||
build/
|
||||
├── debug/ debug-bygge för den här datorn
|
||||
│ ├── jp-subway-pussel
|
||||
│ ├── metro-puzzle-jp
|
||||
│ └── resources/
|
||||
└── release/
|
||||
├── linux-amd64/
|
||||
│ ├── jp-subway-pussel en strippad binär
|
||||
│ ├── metro-puzzle-jp en strippad binär
|
||||
│ └── resources/ sprites/ sound/ text/ data/
|
||||
└── windows-amd64/
|
||||
├── jp-subway-pussel.exe
|
||||
├── metro-puzzle-jp.exe
|
||||
└── resources/
|
||||
```
|
||||
|
||||
@@ -80,10 +80,10 @@ arbetskatalogen (så `go run` och F5 fungerar), och `JP_RESOURCES=/sökväg`
|
||||
### Flaggor
|
||||
|
||||
```
|
||||
jp-subway-pussel -level 001-flygplatsen # starta en viss bana
|
||||
jp-subway-pussel -scale 3 # fönsterstorlek (320x180 × skala)
|
||||
jp-subway-pussel -smoke 90 # öppna fönster, avsluta efter 90 bildrutor (smoke-test)
|
||||
jp-subway-pussel -version
|
||||
metro-puzzle-jp -level 001-flygplatsen # starta en viss bana
|
||||
metro-puzzle-jp -scale 3 # fönsterstorlek (320x180 × skala)
|
||||
metro-puzzle-jp -smoke 90 # öppna fönster, avsluta efter 90 bildrutor (smoke-test)
|
||||
metro-puzzle-jp -version
|
||||
```
|
||||
|
||||
## Beroenden
|
||||
@@ -108,7 +108,7 @@ vid körning, så den fungerar på alla vanliga distributioner.
|
||||
## 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/level/ banformat, validering, framkomlighet
|
||||
internal/res/ hittar och läser resources/
|
||||
|
||||
@@ -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
|
||||
|
||||
import (
|
||||
@@ -9,8 +9,8 @@ import (
|
||||
|
||||
"github.com/hajimehoshi/ebiten/v2"
|
||||
|
||||
"gitea.brasse-pc.eu/brasse/jp-subway-pussel/internal/buildinfo"
|
||||
"gitea.brasse-pc.eu/brasse/jp-subway-pussel/internal/game"
|
||||
"gitea.brasse-pc.eu/brasse/metro-puzzle-jp/internal/buildinfo"
|
||||
"gitea.brasse-pc.eu/brasse/metro-puzzle-jp/internal/game"
|
||||
)
|
||||
|
||||
func main() {
|
||||
@@ -21,7 +21,7 @@ func main() {
|
||||
flag.Parse()
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ func main() {
|
||||
}
|
||||
|
||||
ebiten.SetWindowSize(game.ScreenW**scale, game.ScreenH**scale)
|
||||
ebiten.SetWindowTitle("JP Subway Pussel")
|
||||
ebiten.SetWindowTitle("Metro Puzzle JP")
|
||||
ebiten.SetWindowResizingMode(ebiten.WindowResizingModeEnabled)
|
||||
ebiten.SetVsyncEnabled(true)
|
||||
|
||||
@@ -65,7 +65,7 @@ att bygga på Linux som på Windows.
|
||||
| 2. Data | Allt under `resources/` | Datadrivna tester som läser filerna | `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 ./...` |
|
||||
| 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 |
|
||||
|
||||
### Tester som finns i dag
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# jp-subway-pussel – plan
|
||||
# metro-puzzle-jp – plan
|
||||
|
||||
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
|
||||
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
|
||||
gitea-claude:brasse/jp-subway-pussel.git`).
|
||||
gitea-claude:brasse/metro-puzzle-jp.git`).
|
||||
|
||||
## Milstolpar
|
||||
|
||||
@@ -56,7 +56,7 @@ Vad som ska vara testat per milstolpe: [mal-och-tester.md](mal-och-tester.md).
|
||||
|
||||
## Ö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?
|
||||
- Font: PixelMplus (fler kanji, 10/12 px) eller Misaki (8 px, tajtare)?
|
||||
Avgörs i M3 när skyltar renderas på riktigt.
|
||||
|
||||
@@ -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. |
|
||||
| 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. |
|
||||
| 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. |
|
||||
|
||||
### Varför inte …
|
||||
@@ -51,8 +51,8 @@ de styr hur milstolparna byggs.
|
||||
### Katalogstruktur
|
||||
|
||||
```
|
||||
jp-subway-pussel/
|
||||
├── cmd/jp-subway-pussel/ main.go – flaggor, fönster, startar spelet
|
||||
metro-puzzle-jp/
|
||||
├── cmd/metro-puzzle-jp/ main.go – flaggor, fönster, startar spelet
|
||||
├── internal/
|
||||
│ ├── buildinfo/ version + läge (sätts av byggverktyget)
|
||||
│ ├── res/ hittar och läser resources/ (ren Go)
|
||||
@@ -76,14 +76,14 @@ jp-subway-pussel/
|
||||
|
||||
| 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 |
|
||||
| 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 ./...` | |
|
||||
|
||||
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
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# JP Subway Pussel – spelbeskrivning
|
||||
# Metro Puzzle JP – spelbeskrivning
|
||||
|
||||
Renskriven och omsorterad version av den ursprungliga idébeskrivningen
|
||||
(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 |
|
||||
| "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 |
|
||||
| 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
2
go.mod
@@ -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
|
||||
|
||||
|
||||
@@ -11,9 +11,9 @@ import (
|
||||
"github.com/hajimehoshi/ebiten/v2/ebitenutil"
|
||||
"github.com/hajimehoshi/ebiten/v2/inpututil"
|
||||
|
||||
"gitea.brasse-pc.eu/brasse/jp-subway-pussel/internal/buildinfo"
|
||||
"gitea.brasse-pc.eu/brasse/jp-subway-pussel/internal/level"
|
||||
"gitea.brasse-pc.eu/brasse/jp-subway-pussel/internal/res"
|
||||
"gitea.brasse-pc.eu/brasse/metro-puzzle-jp/internal/buildinfo"
|
||||
"gitea.brasse-pc.eu/brasse/metro-puzzle-jp/internal/level"
|
||||
"gitea.brasse-pc.eu/brasse/metro-puzzle-jp/internal/res"
|
||||
)
|
||||
|
||||
// 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()
|
||||
}
|
||||
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))
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"gitea.brasse-pc.eu/brasse/jp-subway-pussel/internal/res"
|
||||
"gitea.brasse-pc.eu/brasse/metro-puzzle-jp/internal/res"
|
||||
)
|
||||
|
||||
const sample = `{
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"game.title": "JP Subway Puzzle",
|
||||
"game.title": "Metro Puzzle JP",
|
||||
"menu.start": "Start",
|
||||
"menu.continue": "Continue",
|
||||
"menu.endless": "Endless mode",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"game.title": "JP Subway Pussel",
|
||||
"game.title": "Metro Puzzle JP",
|
||||
"menu.start": "Starta",
|
||||
"menu.continue": "Fortsätt",
|
||||
"menu.endless": "Oändligt läge",
|
||||
|
||||
@@ -22,7 +22,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
appName = "jp-subway-pussel"
|
||||
appName = "metro-puzzle-jp"
|
||||
mainPkg = "./cmd/" + appName
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user