Hi Tom

That's why I used foreach to get the position dependent bulls-eyes and 
intersect to get the position independent shots. (I hope I understood 
the scoring system properly). It would have helped if there wasn't an 
error in my code. Here is the revised version:

foreach attempt ans [
        if attempt = first target [bulls: bulls + 1]
        target: next target
]

shots: shots + length? intersect ans target: head target


Actually, I suspect there may be a better solution using parse.

Regards

Peter

On Tuesday, Apr 25, 2006, at 14:06 Asia/Kuala_Lumpur, Tom Conlin wrote:

>
> Hi Peter,
>
> I had looked at the much cleaner 'intersect as well but rejected it
> because it treats it's arguments as 'sets' in the mathematical sense...
> that is, order does not mater.  which I do not think ia appropiate in
> this case
>
>
> Peter Wood wrote:
>> You could use foreach to iterate through one series to find the number
>> of bulls-eyes (but you have to handle the iteration of the other 
>> series
>> yourself) and then use intersect of the two series to determine the
>> number of shots:
>>
>> foreach attempt ans [
>>      if attempt = first target [bulls: bulls + 1]
>>      ans: next ans
>> ]
>>
>> shots: shots + length? intersect head ans target
>>
>> Regards
>>
>> Peter
>>
>> On Tuesday, Apr 25, 2006, at 13:03 Asia/Kuala_Lumpur, Rosemary de Dear
>> wrote:
>>
>>
>>> Hello Rebol-Org,
>>>
>>> I am having a problem trying to "shrink" some code. These are the
>>> initial=
>>> =20
>>> values -
>>>
>>> random/seed now
>>> digits: [1 2 3 4 5 6 7 8 9 0]
>>> target: copy []
>>>
>>> ;;; then target becomes a fairly random 4-digit number
>>> target: to-string random/secure digits
>>> remove/part target 6
>>>
>>> I want to compare the target with the user's answer, but I can't make
>>> a =20
>>> for or repeat loop
>>> work
>>> because I get invalid path errors. Even though it returns approptiate
>>> =20
>>> results, what follows
>>> is
>>> obviously inefficient so I would be very glad to know the way to make
>>> it =
>>> =20
>>> leaner.
>>>
>>> Regards, Rosemary
>>>
>>>
>>> get-answer: does [
>>> ans: to-string num/text
>>> answer: copy []
>>> bulls: shots: 0
>>>
>>> if find target ans/1 [
>>> either ans/1 =3D=3D target/1
>>> [bulls: bulls + 1] [shots: shots + 1]]
>>>
>>> if find target ans/2 [
>>> either ans/2 =3D=3D target/2
>>> [bulls: bulls + 1][shots: shots + 1]]
>>>
>>> if find target ans/3 [
>>> either ans/3 =3D=3D target/3
>>> [bulls: bulls + 1][shots: shots + 1]]
>>>
>>> if find target ans/4 [
>>> either ans/4 =3D=3D target/4
>>> [bulls: bulls + 1][shots: shots + 1]]
>>>
>>> tries: tries + 1
>>> either ( tries <=3D 9 )
>>> [answer: rejoin ["0" tries ": " ans "   " bulls "     " shots]]
>>> [answer: rejoin [tries ":  " ans "   " bulls "     " shots]]
>>> ]
>>>
>>>
>>> --=20
>>>
>>> Formix Australia - www.formix.com.au
>>>
>>> 613 9354 9585
>>> PO Box 261 Nth Carlton Vic 3054
>>> -- 
>>> To unsubscribe from the list, just send an email to
>>> lists at rebol.com with unsubscribe as the subject.
>>>
>>
>>
>
> -- 
>            ... nice weather     eh          [EMAIL PROTECTED]
> -- 
> To unsubscribe from the list, just send an email to
> lists at rebol.com with unsubscribe as the subject.
>

-- 
To unsubscribe from the list, just send an email to 
lists at rebol.com with unsubscribe as the subject.

Reply via email to