Hi
First, I think your code is readable and easy to understand.
I think the problem does not lend itself too much towards having ���an object oriented solution���, as such.
If you are looking for a one-liner using smalltalk libraries, you could do:({10 -> 0. 5 -> 1. 1 -> 5. 0 -> 10} detect: [ :dist | dist key < distance ]) value
but I really think your code is easier to read, which is what I appreciate the most.Best,
Kasper
On 27 December 2019 at 20.18.38, Roelof Wobben via Pharo-users (pharo-users@lists.pharo.org) wrote:
Hello,
Im trying to solve a challenge from exercism where�� I have to calculate the points somehow gets on a very simple darts board.
I solved it like this :
scoreX: anInteger y: anInteger2
������ | distance |
������ distance := (anInteger squared + anInteger2 squared) sqrt.
������ distance > 10
������ ������ ifTrue: [ ^ 0 ].
������ distance > 5
������ ������ ifTrue: [ ^ 1 ].
������ distance > 1
������ ������ ifTrue: [ ^ 5 ].
������ ^ 10
but now I use three if then and I think it's ugly code.
Is there a way I can make it more the smalltalk way ?
Regards,
Roelof