diff --git a/app/controllers/guesses_controller.rb b/app/controllers/guesses_controller.rb index a22b504..f6fa1c6 100644 --- a/app/controllers/guesses_controller.rb +++ b/app/controllers/guesses_controller.rb @@ -1,18 +1,26 @@ class GuessesController < ApplicationController def create @game = current_user.games.find(params[:game_id]) - @game.guess(current_user, params[:guess][:letter]) + if @game.guesses.count >=3 + @game.guess_word(current_user, params[:guess][:letter]) + else + @game.guess(current_user, params[:guess][:letter]) + end + win + end + + + def win if @game.complete? - if @game.guesses.wrong.count < 7 + + + if @game.winner? flash.notice = "You won! You're pretty much a pro." - elsif @game.guesses.wrong.count < 12 - flash.notice = "You won! You're decent." - elsif @game.guesses.wrong.count < 16 - flash.notice = "You won! You kinda suck, with #{@game.guesses.wrong.count} wrong guesses, but you made it." else - flash.notice = "You finished the game! Not sure if I'd call it winning since you took #{@game.guesses.wrong.count} wrong guesses; you basically pound on the keyboard like a gorilla." + flash.notice = "You lost! --with #{@game.guesses.wrong.count} wrong guesses" end end redirect_to @game end + end diff --git a/app/models/game.rb b/app/models/game.rb index c4932b7..b64c82d 100644 --- a/app/models/game.rb +++ b/app/models/game.rb @@ -1,7 +1,7 @@ class Game < ActiveRecord::Base belongs_to :word has_and_belongs_to_many :users - has_many :guesses + has_many :guesses validates_presence_of :word before_validation :choose_word, :on => :create @@ -13,7 +13,7 @@ def choose_word def generate_masked_word positions = [] - positions = (positions + [rand(word.text.length)]).uniq until positions.length == 2 + positions = (positions + [rand(word.text.length)]).uniq until positions.length == 4 masked_word = word.text.gsub(/./, '*') positions.each {|n| masked_word[n] = word.text[n] } self.masked_word = masked_word @@ -33,7 +33,19 @@ def guess(user, letter) guesses.create! :user => user, :letter => letter, :hit => hit end + def guess_word(user, w) + if w == word.text + update_attribute :masked_word, w + end + end + + def complete? + guesses.count >= 4 + end + + def winner? masked_word == word.text end + end diff --git a/app/views/games/show.html.erb b/app/views/games/show.html.erb index 7d12052..e70dde1 100644 --- a/app/views/games/show.html.erb +++ b/app/views/games/show.html.erb @@ -4,6 +4,17 @@ <%= g.text_field :letter %> <% end %> +

+ Hint: + <%= @game.word.meaning %> + <% if @game.guesses.count >=3 %> +
+ Guess the word! + <% else %> + + <% end %> +

+

Guesses:

+

\ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 6dc5fec..59e90d4 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -58,7 +58,7 @@ # You can have the root of your site routed with "root" # just remember to delete public/index.html. - root :to => 'games#show' + root :to => 'welcome#index' # See how all your routes lay out with "rake routes" end