Skip to content

Instantly share code, notes, and snippets.

@kingcons
Created January 13, 2016 02:48
Show Gist options
  • Save kingcons/35d37a1ed5f9fa3e49be to your computer and use it in GitHub Desktop.
Save kingcons/35d37a1ed5f9fa3e49be to your computer and use it in GitHub Desktop.
January Crash Course
require "pry"
DICTIONARY = [
"cats", "dogs", "sleep", "pizza",
"bourbon", "music", "internet", "programming",
"cocktails", "parties", "anniversary", "other"
]
def greeting
puts "Welcome to Hangman!"
end
def random_word
DICTIONARY.sample
end
def win?(answer, guesses)
answer.chars.all? do |letter|
guesses.include?(letter)
end
# winner = true
# answer.each_char do |letter|
# winner = false unless guesses.include?(letter)
# end
# winner
end
def lose?(turn_count)
turn_count == 0
end
def game_over?(turn_count, answer, guesses)
win?(answer, guesses) || lose?(turn_count)
end
def afterward(turns, answer)
if lose?(turns)
puts "Better luck next time."
else
puts "Nice job!"
end
puts "\n\nThe word was: #{answer}."
end
def hangman(answer)
guesses = []
turn_count = 7
greeting
until game_over?(turn_count, answer, guesses)
puts "The word is #{answer.length} letters long."
puts "You've already guessed: #{guesses.join(', ')}"
puts "You have #{turn_count} turns left. Please guess a letter: "
guess = gets.chomp
guesses.push(guess)
turn_count -= 1 unless answer.include?(guess)
end
afterward(turn_count, answer)
end
hangman(random_word)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment