summaryrefslogtreecommitdiff
path: root/go/robot-name/robot_name.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/robot-name/robot_name.go')
-rw-r--r--go/robot-name/robot_name.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/go/robot-name/robot_name.go b/go/robot-name/robot_name.go
new file mode 100644
index 0000000..6230e1c
--- /dev/null
+++ b/go/robot-name/robot_name.go
@@ -0,0 +1,33 @@
+package robotname
+
+import (
+ "math/rand"
+ "time"
+)
+
+func init() {
+ rand.Seed(time.Now().UnixNano())
+}
+
+type Robot struct {
+ name string
+}
+
+func randLetter() string { return string('A' + rand.Intn(26)) }
+func randNumber() string { return string('0' + rand.Intn(10)) }
+
+func newName() string {
+ return randLetter() + randLetter() +
+ randNumber() + randNumber() + randNumber()
+}
+
+func (r *Robot) Name() string {
+ if r.name == "" {
+ r.name = newName()
+ }
+ return r.name
+}
+
+func (r *Robot) Reset() {
+ r.name = ""
+}