[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ruby-talk
Subject:    Re: Ruby Mastermind Game
From:       Matt Harrison <iwasinnamuknow () genestate ! com>
Date:       2008-10-31 22:46:48
Message-ID: 490B8B0D.1060901 () genestate ! com
[Download RAW message or body]


Brian Candler wrote:
> Lloyd Linklater wrote:
>> Well, you know how to get the random number, so that is easy enough. 
>> You just store the last guess and if the new guess is closer to correct 
>> than the last one, you are warmer.  Continue until they get it right. 
>> Going to 10k should be guessed in no more than 14 tries.
> 
> I think he was asking about the Mastermind program.
> 
> However it's pretty much the same:
> 
> - make a 4-digit random number between 0000 and 9999
> - in a loop:
>   - ask for a guess
>   - finish if the guess is completely right
>   - count how many digits are correct and in the right place
>   - count how many digits are correct but in the wrong place
>   - print the counts
> 
> You have a choice of ways to store the correct number. For example it 
> could be a 4-digit string: "1234". Then str[0,1] will extract the first 
> character, and str[3,1] will extract the last character, so you can 
> iterate easily enough to compare the characters.
> 
> You may find it easier to create a 4-element Array where each element is 
> an integer from 0 to 9. This is easy to manipulate. However the guess 
> that the user enters has to be converted into this form too.
> 
> I suggest you code it as far as you can, and put comments in (or dummy 
> method calls) for the bits where you are stuck.

Just out of interest I have created a mastermind game. I'm still 
learning Ruby (I come from C++ and Perl), so I would love if one of you 
experts could take a peek and maybe show me how to make it more 
"Rubyesque". I'm always ready to learn and I'm sure there's vast room 
for improvement.

It might also help the OP, show him how *not* to do it ;)

Thanks

Matt

["rastermind.tar.bz2" (application/octet-stream)]

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic