Created
January 13, 2016 02:48
-
-
Save kingcons/35d37a1ed5f9fa3e49be to your computer and use it in GitHub Desktop.
January Crash Course
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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