On Mon, 10 Dec 2018 at 14:28, Roelof Wobben <[email protected]> wrote:

>
> Hmm,
>
> I thought I understand this idea but I do not.
>
> I did this in the playground :
>
>
> | answer |
> answer := Key5Solver new solver.
>  ^ answer Result
>

You can't access the Result variable inside like that.  You need a accessor
method to do it for you like this...

Key5Solver>>result
     ^ Result

But also, you never set the value of Result, see below...


> class :
>
> Object subclass: #Key5Solver
>     instanceVariableNames: ''
>     classVariableNames: 'Result'
>     package: 'AdventOfCode2015-Day4 - Part1'
>

Thats good.  Actually I amend my suggestion from yesterday. An instance
variable would do.


I've renamed your method here...
Key5Solver>>startCalculation

>
> zeros := '000'.
> zerosSize := zeros  size.
> count := 0.
> [
>     [    candidate := secret , count printString.
>         ((MD5 hashMessage: candidate) hex first: zerosSize) = zeros
>     ] whileFalse:
>         [
>             count := count + 1.
>         ].
>

           Result := count    "<<<<< need to store the result of the
calculation"
           self inform: 'Mining calculation is complete.  You can now ask
me for the result'.

>
> ] forkAt: 35 named: 'Mining'.
>
>
> but still I do not see the answer.
>


With the above, in Playground you can do...

solver := Key5Solver new startCalculation  .   "<<<evaluate this line only"
"wait for information message to appear"
solver result inspect   "<<<<now you can evaluate this line to get the
answer"

cheers -ben


> Maybe I have to go for the blocking answer.
>
> Roelof
>
>
>
> Op 9-12-2018 om 23:10 schreef Ben Coman:
>
> This is running the calculation in a new Process (in general terms, our
> "Process"es are "green-threads").
> You can't "return" values between threads.  You need to pass it some other
> way through a variable.
> If you put that code into an instance method, then you could store the
> result in a class-variable.
> Change the Transcript to ```self inform: 'FInished' ```  and then have a
> different method you call
> after you see that to return the answer.
>
> cheers -ben
>
> On Mon, 10 Dec 2018 at 04:16, Roelof Wobben <[email protected]> wrote:
>
>> Hello,
>>
>> I got this code from the discord channel
>>
>> secret := 'abcdef'.
>> zeros := '000'.
>> zerosSize := zeros  size.
>> count := 0.
>> [
>>     [    candidate := secret , count printString.
>>         ((MD5 hashMessage: candidate) hex first: zerosSize) = zeros
>>     ] whileFalse:
>>         [    (count \\ 10000) = 0 ifTrue: [ Transcript crShow: count ].
>>             count := count + 1.
>>         ].
>>     Transcript crShow: 'ANSWER = ' , count printString.
>> ] forkAt: 35 named: 'Mining'
>>
>> but I like that there is no transcipt in the code
>>
>> so my question is how can I change this part( Transcript crShow: 'ANSWER = ' 
>> , count printString.
>> )
>>
>> so it still returns the count.
>>
>>
>> I tried  ^count printstring but that is not allowed
>>
>>
>> Regards,
>>
>>
>> Roelof
>>
>>
>>
>> Op 9-12-2018 om 12:29 schreef Roelof Wobben:
>>
>> Helllo,
>>
>> a question about day4 of 2015
>> is it right that I can only solve this bruteforece
>> so begin at for example 1 , encode it, check for 5 zeros if found then I
>> have found it otherwise increase the counter and do it again
>> https://adventofcode.com/2015/day/4
>>
>> Regards,
>>
>> Roelof
>>
>>
>>
>

Reply via email to