mirror of
https://codeberg.org/scip/golsky.git
synced 2025-12-16 12:10:58 +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
|
||||
|
||||
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
|
||||
- Implement RLE writing on scene.MarkDone
|
||||
|
||||
25
config.go
25
config.go
@@ -3,6 +3,7 @@ package main
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/spf13/pflag"
|
||||
"github.com/tlinden/golsky/rle"
|
||||
@@ -23,6 +24,30 @@ type Config struct {
|
||||
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 {
|
||||
config := Config{}
|
||||
|
||||
|
||||
6
game.go
6
game.go
@@ -17,9 +17,15 @@ func NewGame(config *Config, startscene SceneName) *Game {
|
||||
ScreenHeight: config.ScreenHeight,
|
||||
}
|
||||
|
||||
// setup scene[s]
|
||||
game.CurrentScene = startscene
|
||||
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
|
||||
}
|
||||
|
||||
|
||||
31
main.go
31
main.go
@@ -5,35 +5,9 @@ import (
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/tlinden/golsky/rle"
|
||||
|
||||
"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() {
|
||||
config := ParseCommandline()
|
||||
|
||||
@@ -44,11 +18,6 @@ func main() {
|
||||
|
||||
game := NewGame(config, Play)
|
||||
|
||||
// setup environment
|
||||
ebiten.SetWindowSize(game.ScreenWidth, game.ScreenHeight)
|
||||
ebiten.SetWindowTitle("Game of life")
|
||||
ebiten.SetWindowResizingMode(ebiten.WindowResizingModeEnabled)
|
||||
|
||||
// main loop
|
||||
if err := ebiten.RunGame(game); err != nil {
|
||||
log.Fatal(err)
|
||||
|
||||
Reference in New Issue
Block a user