Given up for today

I have this :

calculateFloors
| stepChanges floor|
floor := 0.
stepChanges := input asArray collect: [ :c |
floor := floor+ (c = $( ifTrue: [ 1 ] ifFalse: [ -1 ]).
].
floors addFloor: floor.

but now I see this error message :

temp values not written or read.

floors and input are instance variables where input is the input the user wants to use and floors is a Collection new.

Roelof



Op 9-11-2018 om 20:07 schreef Roelof Wobben:
hmm, got a idea

I could use this part :

|input floor stepChanges|
input := '))((((('.
floor := 0.
stepChanges := input asArray collect: [ :c |
floor := floor + (c = $( ifTrue: [ 1 ] ifFalse: [ -1 ]).
 ].


two times if the outcome would be a collection.
The challenge is 2 parts.

1) find out where santa stops. that would be the last number in the collection.. 2) find out when santa enters the basement. That could be the function that is mentioned here.

Time to experiment with this idea.

Roelof


Op 9-11-2018 om 19:13 schreef Alistair Grant:
Hi Peter,

On Fri, 9 Nov 2018 at 19:00, Alistair Grant <akgrant0...@gmail.com> wrote:
Hi Peter,

On Fri, 9 Nov 2018 at 18:51, Peter Uhnak <i.uh...@gmail.com> wrote:
but how do I find now the answer do I have to do something like   puzzle1  stepChanges detectIndex ?

How do you mean? It would be the same

santaFloorOnBasement
     "calculates which step take Santa to the basement"

     stepChanges := input collect: [ :c |
floor := floor + (c = '(' ifTrue: [ 1 ] ifFalse: [ -1 ]).
floor
     ].

     stepChanges detectIndex: [ :each | each = -1 ] ifNone: [ 'invalid input yo' ].

then I see this error message : Improper store to indexable object.

Because earlier you were comparing strings and not characters, I assumed your input was an array of strings like #('(' '(' '('). but you can fix that by changing `input collect:` -> `input asArray collect:` and `c = '('` -> `c = $(`.
Using '(' instead of $( is indeed an error, but it isn't the cause of
the Improper store error.
I was too quick to respond here, I didn't look at the #asArray. Sorry!

But still suggest Roelof looks at the debugger...

Roelof, I really suggest you trigger this error again, start the
debugger and then take a look in the call stack (I'm assuming you're
familiar with at least one other programming language, so should be
able to figure out the debugger).
Cheers,
Alistair







Reply via email to