mirror of
https://codeberg.org/scip/golsky.git
synced 2025-12-16 20:20:57 +01:00
little refactor
This commit is contained in:
12
TODO.md
12
TODO.md
@@ -1,11 +1 @@
|
|||||||
https://conwaylife.com/wiki/Run_Length_Encoded
|
- Implement RLE writing on scene.MarkDone
|
||||||
|
|
||||||
e.g.:
|
|
||||||
https://github.com/nhoffmann/life/tree/master/rle
|
|
||||||
https://github.com/sachaos/go-life/tree/master/format/rle
|
|
||||||
|
|
||||||
rle files:
|
|
||||||
https://catagolue.hatsya.com/object/xq2_32mmgozg0igke72z1n2q1z0qgm1z31i2bsogzggqq261z1/b3s23
|
|
||||||
https://copy.sh/life/examples/
|
|
||||||
|
|
||||||
- Translate mouse click co-ordinates to world co-ordinates
|
|
||||||
|
|||||||
25
config.go
25
config.go
@@ -3,6 +3,7 @@ package main
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
"os"
|
||||||
|
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
"github.com/tlinden/golsky/rle"
|
"github.com/tlinden/golsky/rle"
|
||||||
@@ -23,6 +24,30 @@ type Config struct {
|
|||||||
ShowVersion bool
|
ShowVersion bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
VERSION = "v0.0.6"
|
||||||
|
Alive = 1
|
||||||
|
Dead = 0
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetRLE(filename string) *rle.RLE {
|
||||||
|
if filename == "" {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
content, err := os.ReadFile(filename)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
parsedRle, err := rle.Parse(string(content))
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("failed to load RLE pattern file: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return &parsedRle
|
||||||
|
}
|
||||||
|
|
||||||
func ParseCommandline() *Config {
|
func ParseCommandline() *Config {
|
||||||
config := Config{}
|
config := Config{}
|
||||||
|
|
||||||
|
|||||||
6
game.go
6
game.go
@@ -17,9 +17,15 @@ func NewGame(config *Config, startscene SceneName) *Game {
|
|||||||
ScreenHeight: config.ScreenHeight,
|
ScreenHeight: config.ScreenHeight,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// setup scene[s]
|
||||||
game.CurrentScene = startscene
|
game.CurrentScene = startscene
|
||||||
game.Scenes[Play] = NewPlayScene(game, config)
|
game.Scenes[Play] = NewPlayScene(game, config)
|
||||||
|
|
||||||
|
// setup environment
|
||||||
|
ebiten.SetWindowSize(game.ScreenWidth, game.ScreenHeight)
|
||||||
|
ebiten.SetWindowTitle("golsky - conway's game of life")
|
||||||
|
ebiten.SetWindowResizingMode(ebiten.WindowResizingModeEnabled)
|
||||||
|
|
||||||
return game
|
return game
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
31
main.go
31
main.go
@@ -5,35 +5,9 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/tlinden/golsky/rle"
|
|
||||||
|
|
||||||
"github.com/hajimehoshi/ebiten/v2"
|
"github.com/hajimehoshi/ebiten/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
|
||||||
VERSION = "v0.0.6"
|
|
||||||
Alive = 1
|
|
||||||
Dead = 0
|
|
||||||
)
|
|
||||||
|
|
||||||
func GetRLE(filename string) *rle.RLE {
|
|
||||||
if filename == "" {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
content, err := os.ReadFile(filename)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
parsedRle, err := rle.Parse(string(content))
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("failed to load RLE pattern file: %s", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return &parsedRle
|
|
||||||
}
|
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
config := ParseCommandline()
|
config := ParseCommandline()
|
||||||
|
|
||||||
@@ -44,11 +18,6 @@ func main() {
|
|||||||
|
|
||||||
game := NewGame(config, Play)
|
game := NewGame(config, Play)
|
||||||
|
|
||||||
// setup environment
|
|
||||||
ebiten.SetWindowSize(game.ScreenWidth, game.ScreenHeight)
|
|
||||||
ebiten.SetWindowTitle("Game of life")
|
|
||||||
ebiten.SetWindowResizingMode(ebiten.WindowResizingModeEnabled)
|
|
||||||
|
|
||||||
// main loop
|
// main loop
|
||||||
if err := ebiten.RunGame(game); err != nil {
|
if err := ebiten.RunGame(game); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
|||||||
Reference in New Issue
Block a user