diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..4f29e4c --- /dev/null +++ b/Gemfile @@ -0,0 +1,9 @@ +source 'http://www.rubygems.org' + +gem 'sinatra' +#gem 'reloader' + +group :development do + gem 'pry-byebug' + +end \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..be905cc --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,34 @@ +GEM + remote: http://www.rubygems.org/ + specs: + byebug (9.0.6) + coderay (1.1.1) + method_source (0.8.2) + mustermann (1.0.0) + pry (0.10.4) + coderay (~> 1.1.0) + method_source (~> 0.8.1) + slop (~> 3.4) + pry-byebug (3.4.2) + byebug (~> 9.0) + pry (~> 0.10) + rack (2.0.2) + rack-protection (2.0.0) + rack + sinatra (2.0.0) + mustermann (~> 1.0) + rack (~> 2.0) + rack-protection (= 2.0.0) + tilt (~> 2.0) + slop (3.6.0) + tilt (2.0.7) + +PLATFORMS + ruby + +DEPENDENCIES + pry-byebug + sinatra + +BUNDLED WITH + 1.14.6 diff --git a/README.md b/README.md index 3f18110..7baf236 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,5 @@ Hit me baby one more time? [A Blackjack game using the Ruby Sinatra web application framework which uses object oriented programming, cookies, sessions, and JSON from the Viking Code School](http://www.vikingcodeschool.com) + +Chad Lucas \ No newline at end of file diff --git a/app.rb b/app.rb new file mode 100644 index 0000000..f2b11ce --- /dev/null +++ b/app.rb @@ -0,0 +1,28 @@ +require 'sinatra' +#require 'sinatra/reloader' if development? +require './helpers/blackjack_helper.rb' +require './blackjack.rb' + +helpers BlackjackHelper +enable :sessions + +get '/' do + "hello world" + erb :home +end + +get '/blackjack' do + game = Blackjack.new + cards = game.deal_cards + sessions[:player_hand] = game.get_player_score + erb :"blackjack", :locals => {:cards => cards} + +end + +post '/blackjack' do + if params[:hit]) + game.add_card + end + redirect to("blackjack") + +end \ No newline at end of file diff --git a/blackjack.rb b/blackjack.rb new file mode 100644 index 0000000..9f644c6 --- /dev/null +++ b/blackjack.rb @@ -0,0 +1,99 @@ +require 'pry' +class Blackjack + attr_accessor :deck, :player_hand, :computer_hand, :player_score, :sum + SUIT = %w(clubs diamonds spades hearts) + VALUE = %w(2 3 4 5 6 7 8 9 10 J Q K A) + #create card struct with suit & value + Card = Struct.new(:suit, :value) + #sets up player and computer hands + def initialize + build_deck + @player_hand = [] + @computer_hand = [] + @sum = 0 + end + #iterates through suit and value and creates card struct + #and puts them into array + def build_deck + @deck = [] + SUIT.each do |type| + VALUE.each do |val| + @card = Card.new(type, val) + @deck << @card + end + end + @deck + end + + def deal_cards + deal_player_hand + deal_computer_hand + end + + def deal_player_hand + 0...2.times do + @deck.shuffle! + @player_hand << @deck.pop + end + @player_hand + end + + def deal_computer_hand + 0...2.times do + @computer_hand << @deck.pop + end + @computer_hand + end + + + def get_player_score + + @player_hand.map do |card| + + card.value = check_if_face_card_or_ace?(card) + + @player_score = sum_up_cards(@player_hand) + end + @player_score + end + + def get_computer_score + @computer_hand.map do |card| + card.value = check_if_face_card_or_ace(card) + end + @computer_score = sum_up_cards(@computer_hand) + end + + + def check_if_face_card_or_ace?(card) + if card.value == "J" || card.value == "Q" || card.value == "K" + card.value = 10 + elsif card.value == "A" && @sum < 21 + card.value = 11 + end + card.value + end + + def sum_up_cards(cards) + @sum = 0 + + cards.map do |card| + @sum += card.value.to_i + end + @sum + + end + + + + + +end + + +game = Blackjack.new + +game.deal_cards +game.get_player_score + + diff --git a/helpers/blackjack_helper.rb b/helpers/blackjack_helper.rb new file mode 100644 index 0000000..7ee3bb0 --- /dev/null +++ b/helpers/blackjack_helper.rb @@ -0,0 +1,4 @@ +module BlackjackHelper + + +end \ No newline at end of file diff --git a/views/blackjack.erb b/views/blackjack.erb new file mode 100644 index 0000000..33e0703 --- /dev/null +++ b/views/blackjack.erb @@ -0,0 +1,10 @@ +