From: Brian Candler Date: 2009-10-19T17:45:28+09:00 Subject: Re: Need help comparing Array data # How about a separate object to represent each choice: # RPS::Rock # RPS::Paper # RPS::Scissors # and RPS::All is an array of all three. class RPS attr_accessor :beats def initialize(name, beats=nil) @name = name @beats = beats end def beats?(other) @beats == other end def to_s @name end Rock = new("rock") Paper = new("paper", Rock) Scissors = new("scissors", Paper) Rock.beats = Scissors All = [Rock, Paper, Scissors] def self.play player1 = All[rand All.size] player2 = All[rand All.size] puts "Player 1 chose #{player1}" puts "Player 2 chose #{player2}" if player1.beats?(player2) puts "Player 1 wins!" elsif player2.beats?(player1) puts "Player 2 wins!" else puts "Tie!" end puts end end 20.times do RPS.play end -- Posted via http://www.ruby-forum.com/.