tracks/perl6/exercises/robot-name/Example.pm in trackler-2.0.8.20 vs tracks/perl6/exercises/robot-name/Example.pm in trackler-2.0.8.21
- old
+ new
@@ -1,19 +1,12 @@
-class Robot is export {
- has $.name is rw = self.reset_name;
+unit class Robot:ver<1>;
- method rand_letter {
- ['A'..'Z'].pick;
- }
+state %record;
- method rand_suffix {
- 100 + 900.rand.truncate;
- }
+has Str:D $.name = self.reset-name;
- method new_name {
- self.rand_letter ~ self.rand_letter ~ self.rand_suffix;
- }
-
- method reset_name {
- self.name = self.new_name;
- }
+method reset-name {
+ $!name = ('AA'..'ZZ').roll ~ ('000'..'999').roll;
+ self.reset-name if %record{$!name}:exists;
+ %record{$!name} = True;
+ return $!name;
}