Sha256: aeda7fd719ad683b13a6658752726e4029e227203d12e0169cd1154d9be17772
Contents?: true
Size: 887 Bytes
Versions: 2
Compression:
Stored size: 887 Bytes
Contents
module CinchHangman class Game MASK = "_" def initialize(answer, max_guesses = 6) @answer = answer.downcase @max_guesses = max_guesses @guesses = "" end def guess(guess) @guesses << guess.downcase.gsub(/[^a-z0-9]/, "") end def describe if @guesses.empty? "(#{hint}) hangman started." elsif solved? "(#{@answer}) was solved!" elsif guesses_left <= 0 "(#{@answer}) was too difficult!" else "(#{hint}) #{guesses_left} guesses left, guessed: #{incorrect_guesses.join}" end end def solved? !hint.include?(MASK) end def guesses_left @max_guesses - incorrect_guesses.size end def hint @answer.gsub(/[^\s#{@guesses}]/, MASK) end def incorrect_guesses @guesses.gsub(/[#{@answer}]/, "").split(//).sort end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
cinch_hangman-0.0.7 | lib/cinch_hangman/game.rb |
cinch_hangman-0.0.6 | lib/cinch_hangman/game.rb |