Have got win and failures working
This commit is contained in:
parent
d9fa154a01
commit
a8e42da6fd
10 changed files with 255 additions and 28 deletions
|
|
@ -2,21 +2,32 @@ package main
|
|||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"flag"
|
||||
"log"
|
||||
"math/rand/v2"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sort"
|
||||
"time"
|
||||
)
|
||||
|
||||
type wordList struct {
|
||||
Words map[int][]string `json:"words"`
|
||||
}
|
||||
|
||||
type shufflePattern struct {
|
||||
Index map[int][]int `json:"index"`
|
||||
}
|
||||
|
||||
func main() {
|
||||
dictFile := flag.String("dict", "", "dictionary of word to prep")
|
||||
dictFile := flag.String("dict", "./dict/en_GB.dic", "dictionary of word to prep")
|
||||
outDir := flag.String("out", "./site/assets/data", "output directory")
|
||||
flag.Parse()
|
||||
|
||||
r := rand.New(rand.NewPCG(uint64(time.Now().UnixNano()), uint64(time.Now().UnixNano())))
|
||||
|
||||
words := wordList{
|
||||
Words: make(map[int][]string),
|
||||
}
|
||||
|
|
@ -29,11 +40,42 @@ func main() {
|
|||
log.Fatal(err)
|
||||
}
|
||||
|
||||
for _, word := range words.Words {
|
||||
for k, word := range words.Words {
|
||||
log.Printf("Found %d words of length %v", len(word), k)
|
||||
sort.Strings(word)
|
||||
}
|
||||
|
||||
if err := json.NewEncoder(os.Stdout).Encode(words); err != nil {
|
||||
var wordData bytes.Buffer
|
||||
if err := json.NewEncoder(&wordData).Encode(words); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if err := os.WriteFile(filepath.Join(*outDir, "words.json"), wordData.Bytes(), 0644); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
// Generate a shuffle pattern
|
||||
shp := shufflePattern{Index: make(map[int][]int)}
|
||||
for k := range words.Words {
|
||||
pattern := make([]int, len(words.Words[k]))
|
||||
for i := range words.Words[k] {
|
||||
pattern[i] = i
|
||||
}
|
||||
|
||||
for x := 4; x < r.IntN(8)+4; x++ {
|
||||
r.Shuffle(len(pattern), func(i, j int) {
|
||||
pattern[i], pattern[j] = pattern[j], pattern[i]
|
||||
})
|
||||
}
|
||||
|
||||
// TODO: shuffle
|
||||
shp.Index[k] = pattern
|
||||
}
|
||||
|
||||
var patternData bytes.Buffer
|
||||
if err := json.NewEncoder(&patternData).Encode(shp); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if err := os.WriteFile(filepath.Join(*outDir, "shuffle_pattern.json"), patternData.Bytes(), 0644); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue