From: Matthew Smillie Date: 2006-08-10T01:50:33+09:00 Subject: Re: how to see if a variable matches an array element? On Aug 9, 2006, at 17:35, John Fink wrote: > Hey folks, > > I'm knocking together a Rock, Paper, Scissors Ruby script to teach > myself > more Ruby deliciousness, and I've got it working, except I want to > compare a > variable to an array element (one of ["R", "P", "S"]) and have the > program > die if it doesn't match up. > > Here's the relevant part of my script (note the rochambo function > is defined > earlier in the script, and is really verbose, so I clipped it out): > > choices = %w{R P S} > puts "Your choice? R,P,S" > userchoice = gets.chomp.upcase > computerchoice = choices[rand(choices.length)] > puts "You picked " + userchoice + "!" > puts "Computer picked " + computerchoice + "!" > puts "FIGHT!" > rochambo(userchoice, computerchoice) > > > Basically I want to have the program die if the userchoice variable > doesn't > equal one of the elements in the choices array, and it should be > easy, but I > am hitting my head against a wall. Check the documentation for the Array class at http://ruby-doc.org/core exit unless choices.include? userchoice will accomplish what you're looking for, though there are quite a few other ways to do it. matthew smillie.