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