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 = <