codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
puts "VERSION = #{VERSION}" class RPS Hierarchy = { :rock => { :rock => :tie , :paper => :lose , :scissors => :win } , :paper => { :rock => :win , :paper => :tie , :scissors => :lose } , :scissors => { :rock => :lose , :paper => :win , :scissors => :tie } , } Choices = Hierarchy.keys attr_reader :guess def initialize( guess ) guess = guess.to_sym raise "invalid guess" unless Choices.include?(guess) @guess = guess end def fight ( opponent ) Hierarchy[guess][opponent.guess] end def beats? ( opponent ) fight(opponent) == :win end def beat_by? ( opponent ) fight(opponent) == :lose end def ties? ( opponent ) fight(opponent) == :tie end def to_s ( ) guess.to_s end end RPS::Choices.each do |userinput1| RPS::Choices.each do |userinput2| player1,player2 = RPS.new(userinput1),RPS.new(userinput2) outcome = player1.fight(player2) puts "player1 chooses #{player1.guess} and #{outcome}s " \ "the fight with player2 who chooses #{player2.guess}" end end
Private
[
?
]
Run code