Private
Public Access
1
0
Files
EscapeFromTeacher/cmd/client/storage_native.go
Sebastian Unterschütz 6d0d31824e
All checks were successful
Dynamic Branch Deploy / build-and-deploy (push) Successful in 6m49s
fix game
2026-03-22 18:46:54 +01:00

81 lines
2.0 KiB
Go

//go:build !js || !wasm
// +build !js !wasm
package main
import (
"crypto/rand"
"encoding/hex"
"fmt"
"io/ioutil"
"log"
"strings"
)
// loadOrCreatePlayerCode lädt oder erstellt einen eindeutigen Spieler-Code (Desktop Version)
func (g *Game) loadOrCreatePlayerCode() {
const codeFile = "player_code.txt"
// Versuche bestehenden Code zu laden
if data, err := ioutil.ReadFile(codeFile); err == nil {
g.playerCode = string(data)
log.Printf("🔑 Player-Code geladen: %s", g.playerCode)
return
}
// Erstelle neuen Code (32 Hex-Zeichen = 16 Bytes)
bytes := make([]byte, 16)
if _, err := rand.Read(bytes); err != nil {
log.Fatal("Fehler beim Generieren des Player-Codes:", err)
}
g.playerCode = hex.EncodeToString(bytes)
// Speichere Code in Datei
if err := ioutil.WriteFile(codeFile, []byte(g.playerCode), 0644); err != nil {
log.Fatal("Fehler beim Speichern des Player-Codes:", err)
}
log.Printf("🆕 Neuer Player-Code erstellt: %s", g.playerCode)
}
// loadPlayerName lädt gespeicherten Spielernamen (Desktop Version)
func (g *Game) loadPlayerName() string {
const nameFile = "player_name.txt"
if data, err := ioutil.ReadFile(nameFile); err == nil {
name := strings.TrimSpace(string(data))
if name != "" {
log.Printf("👤 Spielername geladen: %s", name)
return name
}
}
return ""
}
// savePlayerName speichert Spielernamen (Desktop Version)
func (g *Game) savePlayerName(name string) {
const nameFile = "player_name.txt"
if err := ioutil.WriteFile(nameFile, []byte(name), 0644); err != nil {
log.Printf("⚠️ Fehler beim Speichern des Spielernamens: %v", err)
} else {
log.Printf("💾 Spielername gespeichert: %s", name)
}
}
func (g *Game) loadHighscore() int {
const hsFile = "highscore.txt"
if data, err := ioutil.ReadFile(hsFile); err == nil {
var score int
if _, err2 := fmt.Sscanf(strings.TrimSpace(string(data)), "%d", &score); err2 == nil {
return score
}
}
return 0
}
func (g *Game) saveHighscore(score int) {
const hsFile = "highscore.txt"
ioutil.WriteFile(hsFile, []byte(fmt.Sprintf("%d", score)), 0644)
}