summaryrefslogtreecommitdiff
path: root/pharo-mooc/redo/src/Dice/DieHandle.class.st
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2025-11-23 17:01:59 +0100
committerEugen Wissner <belka@caraus.de>2025-11-23 17:01:59 +0100
commitbf11813e4fa859a4833cab226c4ea560765d6d77 (patch)
tree480e175d8dbb27376841c27dd4250f89f7bfb9a9 /pharo-mooc/redo/src/Dice/DieHandle.class.st
parent8568518b57dba05500b63a4e471f8fa65883d10a (diff)
downloadbook-exercises-bf11813e4fa859a4833cab226c4ea560765d6d77.tar.gz
Add ReDo Pharo excercises
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
+]