Files
metro-puzzle-jp/cmd/jp-subway-pussel/main.go
claude c1f9546af6 M0: skelett, byggkedja och dokumentation för JP Subway Pussel
- Go 1.27 + Ebitengine v2.10, intern upplösning 320x180 med heltalsskalning
- internal/res (resursuppslag), internal/rng (seedad slump), internal/level
  (banformat, validering, BFS-lösbarhet) med tester; internal/archtest
  kontrollerar att bara presentationslagret beror på Ebitengine
- tools/build: debug -> build/debug/, release -> build/release/<os>-<arch>/
  med resources/ bredvid binären; Windows korsbyggs utan C-verktyg
- VS Code tasks (build/test/release) och launch (dlv)
- Första banan 001-flygplatsen, sv/en-texter, skyltordbok, placeholder-sprite
- doc/: spelbeskrivning (renskriven), mål och tester, roadmap med teknikval
  (M0–M12), plan.md; README med bygg- och beroendeinformation

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-23 18:52:10 +02:00

43 lines
1.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// jp-subway-pussel – pixel art-pussel om att hitta rätt tåg på japanska stationer.
package main
import (
"flag"
"fmt"
"log"
"os"
"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"
)
func main() {
levelID := flag.String("level", "001-flygplatsen", "bana att starta (id = filnamn utan .json)")
scale := flag.Int("scale", 4, "fönsterskala (intern upplösning 320x180 × skala)")
smoke := flag.Int("smoke", 0, "avsluta automatiskt efter N bildrutor (smoke-test)")
version := flag.Bool("version", false, "skriv ut version och avsluta")
flag.Parse()
if *version {
fmt.Printf("jp-subway-pussel %s (%s)\n", buildinfo.Version, buildinfo.Mode)
return
}
g, err := game.New(game.Options{LevelID: *levelID, SmokeFrames: *smoke})
if err != nil {
log.Fatalf("kunde inte starta: %v", err)
}
ebiten.SetWindowSize(game.ScreenW**scale, game.ScreenH**scale)
ebiten.SetWindowTitle("JP Subway Pussel")
ebiten.SetWindowResizingMode(ebiten.WindowResizingModeEnabled)
ebiten.SetVsyncEnabled(true)
if err := ebiten.RunGame(g); err != nil {
log.Println(err)
os.Exit(1)
}
}