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.

Reply via email to