diff --git a/Jays-Game/EmilysGame/controller.rb b/Jays-Game/EmilysGame/controller.rb new file mode 100644 index 0000000..e149290 --- /dev/null +++ b/Jays-Game/EmilysGame/controller.rb @@ -0,0 +1,35 @@ +require_relative 'view' +require_relative 'model' + +class GameController + include GameView + + def run! + scorekeeper = Scorekeeper.new + Print::title_screen + + loop do + Print::score(scorekeeper.player_score, scorekeeper.computer_score) + case Print::new_match + when "r", "R" + scorekeeper.evaluate(:rock) + when "p", "P" + scorekeeper.evaluate(:paper) + when "s", "S" + scorekeeper.evaluate(:scissors) + else + Print::error_message + end + Print::matchup(scorekeeper.player_move.to_s.upcase, scorekeeper.computer_move.to_s.upcase) + if scorekeeper.win == true + Print::winning_message + elsif scorekeeper.win == false + Print::losing_message + else + Print::tie_message + end + end + end +end + +GameController.new.run! \ No newline at end of file diff --git a/Jays-Game/EmilysGame/model.rb b/Jays-Game/EmilysGame/model.rb new file mode 100644 index 0000000..4819325 --- /dev/null +++ b/Jays-Game/EmilysGame/model.rb @@ -0,0 +1,43 @@ +#require 'pry' + +class Scorekeeper + attr_accessor :computer_move, :player_move, :player_score, :computer_score, :win + + def initialize + @player_score = 0 + @computer_score = 0 + @player_move = nil + @computer_move = nil + @win = nil + end + + def evaluate(player_move) + @computer_move = generate_computer_move + @player_move = player_move + @win = nil + if @player_move!=@computer_move + if (@player_move == :rock && @computer_move == :scissors) || + (@player_move == :paper && @computer_move == :rock) || + (@player_move == :scissors && @computer_move == :paper) + + @player_score+=1 + @win = true + else + @computer_score+=1 + @win = false + end + end + end + + def generate_computer_move + prng = Random.new + res = prng.rand(3) + if res == 0 + :rock + elsif res == 1 + :paper + else + :scissors + end + end +end \ No newline at end of file diff --git a/Jays-Game/EmilysGame/view.rb b/Jays-Game/EmilysGame/view.rb new file mode 100644 index 0000000..42afccb --- /dev/null +++ b/Jays-Game/EmilysGame/view.rb @@ -0,0 +1,70 @@ +module GameView + + module Print + + class << self + + #main menu + def title_screen + title = <_o_| +#CROWN +# puts crown + puts "YOU WIN" + end + + #loser + def losing_message +# skull = <<SKULL +# _____ +# / \ +# | () () | +# \ ^ / +# ||||| +#SKULL +# puts skull + puts "YOU LOSE" + end + + def tie_message + puts "YOU TIE" + end + + def new_match + puts "Your Turn -- R for ROCK, P for PAPER, S for SCISSORS" + print "> " + gets.chomp + end + + def matchup(player_move,computer_move) + puts "#{player_move} vs #{computer_move}" + end + + def score(player_score,computer_score) + puts "YOU: #{player_score}" + puts "COMPUTER: #{computer_score}" + end + end + end +end + + + +