Ruby Mastermind Game


#1

Hi all,

Im really stuck with a project. I need to create a mastermind program
using ruby. The details are in the following link;

http://cs105.updatelog.org/2008/10/09/lab-8-branches-and-loops-part-ii/#more-298

It is exercise 2 at the bottom.

Any help or sample code would be great

Cheers!!


#2

Steve J. wrote:

Hi all,

Im really stuck with a project. I need to create a mastermind program
using ruby. The details are in the following link;

http://cs105.updatelog.org/2008/10/09/lab-8-branches-and-loops-part-ii/#more-298

It is exercise 2 at the bottom.

Any help or sample code would be great

Cheers!!

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.


#3

Lloyd L. 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.


#4

On Thu, Oct 30, 2008 at 1:43 PM, Steve J. removed_email_address@domain.invalid
wrote:

Hi all,

Im really stuck with a project. I need to create a mastermind program
using ruby. The details are in the following link;

http://cs105.updatelog.org/2008/10/09/lab-8-branches-and-loops-part-ii/#more-298

It is exercise 2 at the bottom.

Any help or sample code would be great

You’re probably supposed to learn / and % on integers, but you could
use Strings/Arrays too.

Todd


#5

On Thu, Oct 30, 2008 at 1:43 PM, Steve J. removed_email_address@domain.invalid
wrote:

Hi all,

Im really stuck with a project. I need to create a mastermind program
using ruby. The details are in the following link;

http://cs105.updatelog.org/2008/10/09/lab-8-branches-and-loops-part-ii/#more-298

It is exercise 2 at the bottom.

Any help or sample code would be great

Can anyone come up with a non-iterative solution (in Ruby code, I
mean)? I tried using Matrix with no success.

Todd


#6

Brian C. wrote:

  • make a 4-digit random number between 0000 and 9999
    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 :wink:

Thanks

Matt