class Madeupgem::RockPaperScissors

Attributes

moves[RW]

Public Class Methods

new() click to toggle source
# File lib/madeupgem.rb, line 9
def initialize
  @moves = {1 => "rock", 2 => "paper", 3 => "scissors"}
end

Public Instance Methods

make_move() click to toggle source
# File lib/madeupgem.rb, line 49
def make_move
  rand(1..3)
end
paper_rules(m2) click to toggle source
# File lib/madeupgem.rb, line 21
def paper_rules m2
  if m2 == 1
    puts "Win"
  else
    puts "Lose"
  end
end
play() click to toggle source
# File lib/madeupgem.rb, line 57
def play
  puts "enter your move:"
  puts "1: rock; 2: paper; 3: scissors"
  while true
    print "> "
    player_move = gets.chomp.to_i
    ai_move = self.make_move
    {"player": player_move, "other player": ai_move}.map do |player, move|
      puts "#{player} move: #{self.translate_move(move)}"
    end
    self.winner(player_move, ai_move)
  end
end
rock_rules(m2) click to toggle source
# File lib/madeupgem.rb, line 13
def rock_rules m2
  if m2 == 2
    puts "Lose"
  else
    puts "Win"
  end
end
scissors_rules(m2) click to toggle source
# File lib/madeupgem.rb, line 29
def scissors_rules m2
  if m2 == 1
    puts "Lose"
  else
    puts "Win"
  end
end
translate_move(move) click to toggle source
# File lib/madeupgem.rb, line 53
def translate_move move
  self.moves[move]
end
winner(m1, m2) click to toggle source
# File lib/madeupgem.rb, line 37
def winner m1, m2
  if m1 == m2
    puts "Draw"
  elsif m1 == 1
    rock_rules(m2)
  elsif m1 == 2
    paper_rules(m2)
  else
    scissors_rules(m2)
  end
end