class Rockpaperscissors123::Game
Attributes
moves[R]
players[R]
Public Class Methods
new(args = {})
click to toggle source
# File lib/rockpaperscissors123/game.rb, line 5 def initialize(args = {}) @moves = ["rock", "paper", "scissors"] @players = args[:players] end
Public Instance Methods
determine_outcome(players)
click to toggle source
# File lib/rockpaperscissors123/game.rb, line 31 def determine_outcome(players) if players[0].move == players[1].move "Tie" else determine_winner(players) end end
determine_winner(players)
click to toggle source
# File lib/rockpaperscissors123/game.rb, line 39 def determine_winner(players) outcomes = { ["paper", "rock"] => "Player one wins", ["scissors", "paper"] => "Player one wins", ["rock", "scissors"] => "Player one wins" } outcomes[[players[0].move, players[1].move]] || "Player two wins" end
play()
click to toggle source
# File lib/rockpaperscissors123/game.rb, line 10 def play players.each { |player| player.decide_move } validate_moves(players) render_outcome(players) end
render_outcome(players)
click to toggle source
# File lib/rockpaperscissors123/game.rb, line 26 def render_outcome(players) puts determine_outcome(players) puts "Player one threw: #{ players[0].move } | Player two threw: #{ players[1].move }" end
validate_move(move)
click to toggle source
# File lib/rockpaperscissors123/game.rb, line 22 def validate_move(move) moves.include?(move) end
validate_moves(players)
click to toggle source
# File lib/rockpaperscissors123/game.rb, line 16 def validate_moves(players) players.each do |player| player.decide_move unless validate_move(player.move) end end