@@ -5,6 +5,7 @@ import ( | |||
"math/rand" | |||
"sort" | |||
"time" | |||
"util" | |||
) | |||
type Class struct { | |||
@@ -19,31 +20,15 @@ type Player struct { | |||
Stats map[string]int | |||
} | |||
func roll(x, y int) []int { | |||
rolls := make([]int, x) | |||
for i := 0; i < x; i++ { | |||
rolls[i] = (rand.Intn(y) + 1) | |||
} | |||
return rolls | |||
} | |||
func sum(ary []int) int { | |||
s := 0 | |||
for _, v := range ary { | |||
s += v | |||
} | |||
return s | |||
} | |||
func stats() []int { | |||
rolls := make([]int, 6) | |||
for i := 0; i < 6; i++ { | |||
thisRoll := roll(4, 6) | |||
thisRoll := util.Roll(4, 6) | |||
for k, v := range thisRoll { | |||
// fmt.Println(thisRoll) | |||
for v == 1 { | |||
// fmt.Println("Replacing 1") | |||
newv := roll(1, 6) | |||
newv := util.Roll(1, 6) | |||
thisRoll[k] = newv[0] | |||
v = newv[0] | |||
} | |||
@@ -51,7 +36,7 @@ func stats() []int { | |||
sort.Ints(thisRoll) | |||
top3 := make([]int, 3) | |||
copy(top3, thisRoll[1:]) | |||
rolls[i] = sum(top3) | |||
rolls[i] = util.Sum(top3) | |||
} | |||
return rolls | |||
} | |||
@@ -64,7 +49,7 @@ func main() { | |||
rolls := stats() | |||
fmt.Println("Rolls: ", rolls) | |||
sort.Ints(rolls) | |||
ply := Player{"Bob", barb, make(map[string]int)} | |||
ply := Player{util.Namegen(), barb, make(map[string]int)} | |||
for k, v := range barb.StatPriority { | |||
ply.Stats[v] = rolls[k] | |||
} |
@@ -4,8 +4,9 @@ import ( | |||
"fmt" | |||
"math/rand" | |||
// "sort" | |||
"strings" | |||
// "strings" | |||
"time" | |||
"util" | |||
) | |||
type Character struct { | |||
@@ -29,55 +30,11 @@ type Character struct { | |||
Roles map[string][]int | |||
} | |||
func roll(x, y int) []int { | |||
rolls := make([]int, x) | |||
for i := 0; i < x; i++ { | |||
rolls[i] = (rand.Intn(y) + 1) | |||
} | |||
return rolls | |||
} | |||
func sum(ary []int) int { | |||
s := 0 | |||
for _, v := range ary { | |||
s += v | |||
} | |||
return s | |||
} | |||
func namegen() string { | |||
vowels := make([]string, 6) | |||
copy(vowels, strings.Split("aeiouy", "")) | |||
consonants := make([]string, 20) | |||
copy(consonants, strings.Split("bcdfghjklmnpqrstvwxz", "")) | |||
ln := rand.Intn(5) + 5 | |||
vorc := rand.Intn(2) | |||
i := 0 | |||
nm := make([]string, ln) | |||
for i < ln { | |||
sel, c := 0, "" | |||
if i%2 == vorc { | |||
sel = rand.Intn(6) | |||
c = vowels[sel] | |||
} else { | |||
sel = rand.Intn(20) | |||
c = consonants[sel] | |||
} | |||
if i == 0 { | |||
c = strings.ToUpper(c) | |||
} | |||
nm = append(nm, c) | |||
i++ | |||
} | |||
return strings.Join(nm, "") | |||
} | |||
func main() { | |||
rand.Seed(time.Now().UnixNano()) // Keep this first in main() | |||
ply := Character{} | |||
ply.Name = namegen() | |||
ply.Name = util.Namegen() | |||
ply.TotalForces = 9 | |||
ply.CorporealForces = 1 | |||
ply.EtherealForces = 1 |
@@ -0,0 +1,34 @@ | |||
package util | |||
import ( | |||
"math/rand" | |||
"strings" | |||
) | |||
func Namegen() string { | |||
vowels := make([]string, 6) | |||
copy(vowels, strings.Split("aeiouy", "")) | |||
consonants := make([]string, 20) | |||
copy(consonants, strings.Split("bcdfghjklmnpqrstvwxz", "")) | |||
ln := rand.Intn(5) + 5 | |||
vorc := rand.Intn(2) | |||
i := 0 | |||
nm := make([]string, ln) | |||
for i < ln { | |||
sel, c := 0, "" | |||
if i%2 == vorc { | |||
sel = rand.Intn(6) | |||
c = vowels[sel] | |||
} else { | |||
sel = rand.Intn(20) | |||
c = consonants[sel] | |||
} | |||
if i == 0 { | |||
c = strings.ToUpper(c) | |||
} | |||
nm = append(nm, c) | |||
i++ | |||
} | |||
return strings.Join(nm, "") | |||
} |
@@ -0,0 +1,21 @@ | |||
package util | |||
import ( | |||
"math/rand" | |||
) | |||
func Roll(x, y int) []int { | |||
rolls := make([]int, x) | |||
for i := 0; i < x; i++ { | |||
rolls[i] = (rand.Intn(y) + 1) | |||
} | |||
return rolls | |||
} | |||
func Sum(ary []int) int { | |||
s := 0 | |||
for _, v := range ary { | |||
s += v | |||
} | |||
return s | |||
} |