diff --git a/Gemfile b/Gemfile index 63415039..2a92b5a2 100644 --- a/Gemfile +++ b/Gemfile @@ -7,6 +7,11 @@ gem 'sinatra' group :test do gem 'capybara' gem 'rspec' + gem 'thin' + gem 'puma' + gem 'reel' + gem 'http' + gem 'webrick' gem 'simplecov', require: false gem 'simplecov-console', require: false end diff --git a/app.rb b/app.rb index 4abb71ec..3116ccef 100644 --- a/app.rb +++ b/app.rb @@ -1,8 +1,33 @@ require 'sinatra/base' +require 'sinatra/reloader' +require_relative 'lib/game' + class RockPaperScissors < Sinatra::Base + configure :development do + register Sinatra::Reloader + end + get '/test' do 'test page' end + get '/' do + erb(:index) + end + + post '/play' do + @player = params[:player] + erb(:play) + end + + post '/result' do + @answer = params[:answer] + @game = Game.new(params[:answer]) + @computer = @game.computer + @result = @game.result + erb(:result) + + end + run! if app_file == $0 end diff --git a/lib/game.rb b/lib/game.rb new file mode 100644 index 00000000..d4af6f88 --- /dev/null +++ b/lib/game.rb @@ -0,0 +1,33 @@ +class Game + def initialize(answer) + @answer = answer + @answers = ["Rock", "Paper", "Scissors"] + @computers_answer = computers_answer + end + + def player + @answer + end + + def computer + @computers_answer + end + + def computers_answer + @answers.sample + end + + def result + get_result(computer) + end + + def get_result(computer) + if @answer == computer + return "Draw" + elsif @answers[@answers.index(@answer) - 1] == computer #computer answer is my answer -1, then I win + return "You win!" + else + "You lose!" + end + end +end diff --git a/public/style.css b/public/style.css new file mode 100644 index 00000000..3c6b43dd --- /dev/null +++ b/public/style.css @@ -0,0 +1,20 @@ + +body { + + background-image: url("https://wallpapercave.com/wp/wp8121936.jpg"); + background-position: center; +} + +h1 { + color: white; + text-align: center; + padding: 50px; + +} +label { + text-align:right; + padding-right:20px; + display:inline-block; + min-width:150px; +} + diff --git a/spec/game_spec.rb b/spec/game_spec.rb new file mode 100644 index 00000000..b0a39021 --- /dev/null +++ b/spec/game_spec.rb @@ -0,0 +1,8 @@ +require 'game' + +RSpec.describe 'Game' do + it 'returns the users answer' do + game = Game.new("Rock") + expect(game.player).to eq "Rock" + end +end diff --git a/views/index.erb b/views/index.erb new file mode 100644 index 00000000..3eb5532a --- /dev/null +++ b/views/index.erb @@ -0,0 +1,9 @@ + + + + +

Welcome to Rock, Paper, Scissors!

+
+ + +
\ No newline at end of file diff --git a/views/play.erb b/views/play.erb new file mode 100644 index 00000000..09012902 --- /dev/null +++ b/views/play.erb @@ -0,0 +1,15 @@ + + + + +

Welcome <%= @player %>!

+ +
+ + + +
diff --git a/views/result.erb b/views/result.erb new file mode 100644 index 00000000..a745b8bf --- /dev/null +++ b/views/result.erb @@ -0,0 +1,7 @@ + + + + +You chose <%= @answer %> and +Computer chose <%= @computer %> = +<%= @result %> \ No newline at end of file