Skip to content

Instantly share code, notes, and snippets.

@eveadele
Created February 20, 2014 00:24

Revisions

  1. eveadele created this gist Feb 20, 2014.
    69 changes: 69 additions & 0 deletions -
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,69 @@
    #!/usr/bin/env ruby

    #Choose a word
    word_bank = ["mountains", "madness", "colour", "unknown",
    "dream", "witch", "house", "quest", "horror", "west", "reanimator",
    "red", "hook", "case", "ward", "space", "shadow", "time", "over", "shunned",
    "whisperer", "darkness"]
    word = word_bank.sample

    chances = 8

    #Generate guessed word
    guessed_word = ""
    len = word.length
    len.times do
    guessed_word << "_"
    end

    #Start game
    puts "Welcome to Hangman!"
    puts
    puts "Word: " + guessed_word
    puts "Chances remaining: #{chances}"

    while guessed_word != word && chances > 0

    #Get user input
    print "Guess a single letter (a-z) or the entire word: "
    guess = gets.chomp

    #Evaluate guess
    correct = false
    occurrences = 0
    loc = 0
    if guess.length > 1 #User guesses entire word
    if guess == word
    guessed_word = word
    else
    puts "That's not the word, sorry."
    chances -= 1
    end
    else #User guesses individual letter
    word.each_char do |letter|
    if guess == letter
    guessed_word[loc] = letter
    occurrences += 1
    correct = true
    end
    loc += 1
    end
    if correct == true #Inform user of outcome of their guess
    puts "Found #{occurrences} occurrence(s) of the character #{guess}."
    puts
    puts "Word: " + guessed_word
    else
    chances -= 1
    puts "Sorry, no #{guess}'s found."
    puts
    puts "Word: " + guessed_word
    puts "Chances remaining: #{chances}"
    end
    end
    end

    if guessed_word == word
    puts "Congratulations, you've guessed the word!"
    else
    puts "You're out of chances, better luck next time..."
    end