class Rockpaperkinson::RockPaperScissors

Public Class Methods

new() click to toggle source
# File lib/rockpaperkinson/rock_paper_scissors.rb, line 5
def initialize
  @player_one = Player.new("Player One", false)
  @player_two = Player.new("Player Two", false)
end

Public Instance Methods

compare_inputs(one, two) click to toggle source
# File lib/rockpaperkinson/rock_paper_scissors.rb, line 40
def compare_inputs(one, two)
  case one * two
  when 2
    "PAPER beats ROCK..."
  when 3
    "ROCK beats SCISSORS..."
  when 6
    "SCISSORS beats PAPER..."
  else
    "It's a draw!"
  end
end
declare_winner(input_name, winning_phrase) click to toggle source
# File lib/rockpaperkinson/rock_paper_scissors.rb, line 54
def declare_winner(input_name, winning_phrase)
  puts winning_phrase

  if winning_phrase == "It's a draw!"
    puts "Nobody wins...you should play again!"
  elsif winning_phrase[0] == input_name[0]
    puts "#{@player_one.name.upcase} WINS!"
  else
    puts "#{@player_two.name.upcase} WINS!"
  end
end
enable_ai?() click to toggle source
# File lib/rockpaperkinson/rock_paper_scissors.rb, line 34
def enable_ai?
  puts "Play single player against AI? (y/n)"
  gets.downcase.chomp == "y"
end
input_names(input_number) click to toggle source
# File lib/rockpaperkinson/rock_paper_scissors.rb, line 67
def input_names(input_number)
  names = %w[ROCK PAPER SCISSORS]
  names[input_number - 1]
end
play() click to toggle source
# File lib/rockpaperkinson/rock_paper_scissors.rb, line 11
def play
  # choose single or multiplayer
  @player_two.ai = true if enable_ai?


  # prompt players for input
  input_one = @player_one.get_input(@player_one.name)
  input_two = @player_two.get_input(@player_two.name)

  input_one_name = input_names(input_one)
  input_two_name = input_names(input_two)


  # compare choices
  system("clear")
  puts "#{@player_one.name} throws #{input_one_name}...#{@player_two.name} throws #{input_two_name}..."
  comparison = compare_inputs(input_one, input_two)

  # declare winner
  declare_winner(input_one_name, comparison)
end