aboutsummaryrefslogtreecommitdiff
path: root/pharo-mooc/redo/src/Dice/DieHandle.class.st
diff options
context:
space:
mode:
Diffstat (limited to 'pharo-mooc/redo/src/Dice/DieHandle.class.st')
-rw-r--r--pharo-mooc/redo/src/Dice/DieHandle.class.st61
1 files changed, 61 insertions, 0 deletions
diff --git a/pharo-mooc/redo/src/Dice/DieHandle.class.st b/pharo-mooc/redo/src/Dice/DieHandle.class.st
new file mode 100644
index 0000000..6820367
--- /dev/null
+++ b/pharo-mooc/redo/src/Dice/DieHandle.class.st
@@ -0,0 +1,61 @@
+Class {
+ #name : #DieHandle,
+ #superclass : #Object,
+ #instVars : [
+ 'dice'
+ ],
+ #category : #Dice
+}
+
+{ #category : #initialization }
+DieHandle >> + aDieHandle [
+
+ | handle |
+ handle := self class new.
+ self dice do: [ :each | handle addDie: each ].
+ aDieHandle dice do: [ :each | handle addDie: each ].
+ ^ handle
+]
+
+{ #category : #initialization }
+DieHandle >> addDie: aDie [
+
+ dice add: aDie
+]
+
+{ #category : #initialization }
+DieHandle >> dice [
+
+ ^ dice
+]
+
+{ #category : #initialization }
+DieHandle >> diceNumber [
+
+ ^ dice size
+]
+
+{ #category : #initialization }
+DieHandle >> initialize [
+
+ super initialize.
+ dice := OrderedCollection new.
+]
+
+{ #category : #accessing }
+DieHandle >> maxValue [
+
+ | res |
+ res := 0.
+ dice do: [ :each | res := res + each faces ].
+ ^ res
+]
+
+{ #category : #accessing }
+DieHandle >> roll [
+
+ | res |
+ res := 0.
+ dice do: [ :each | res := res + each roll ].
+ ^ res
+]