added function generateSeed

This commit is contained in:
nfirbas 2021-12-28 16:20:12 +01:00
parent e2d171d8b4
commit 9cac79f1c5

View File

@ -10,11 +10,7 @@ import (
// MakeAvatar create svg from seed
func MakeAvatar(seedString string) string {
var seed uint64
for _, c := range []byte(seedString) {
seed = bits.RotateLeft64(seed, 8)
seed ^= uint64(c)
}
seed := generateSeed(seedString)
if seed&1 == 0 {
return femaleAvatar(seed, "")
}
@ -23,22 +19,12 @@ func MakeAvatar(seedString string) string {
// MakeFemaleAvatar create female svg from seed
func MakeFemaleAvatar(seedString string) string {
var seed uint64
for _, c := range []byte(seedString) {
seed = bits.RotateLeft64(seed, 8)
seed ^= uint64(c)
}
return femaleAvatar(seed, "")
return femaleAvatar(generateSeed(seedString), "")
}
// MakeMaleAvatar create male svg from seed
func MakeMaleAvatar(seedString string) string {
var seed uint64
for _, c := range []byte(seedString) {
seed = bits.RotateLeft64(seed, 8)
seed ^= uint64(c)
}
return maleAvatar(seed, "")
return maleAvatar(generateSeed(seedString), "")
}
/**
@ -51,6 +37,14 @@ type lcg struct {
seed uint64
}
func generateSeed(seedString string) (seed uint64) {
for _, c := range []byte(seedString) {
seed = bits.RotateLeft64(seed, 8)
seed ^= uint64(c)
}
return seed
}
func (g *lcg) random() uint32 {
/* Linear Congruent Generator, POSIX/glibc [de]rand48 setting, bits [47..0] are output bits */
g.seed = (25214903917*g.seed + 11) % 281474976710656