#!/usr/bin/ruby -w

DEFAULT_HP = 10
WORD_LIST_PATH = "words.txt"


def get_random_word(wordlist)
	fh = File.open(wordlist, "r")
	words = fh.read().chomp().split(" ")
	fh.close()

	return words[rand(0...words.length)]
end

def gen_word_display(randword, not_known)
	strdisplay = ""
	randword.split("").each do |c|
		if( not_known.include?(c) ) then
			strdisplay += " _"
		else
			strdisplay += " #{c}"
		end
	end

	return strdisplay
end

def game()
	health = DEFAULT_HP
	randword = get_random_word(WORD_LIST_PATH)
	not_known = randword.split("")
	
	win = false
	
	while true do
		2.times {puts}
		if( health <= 0 ) then
			puts("You are out of lives!")
			break
		elsif( not_known.length <= 0 ) then
			puts("You win!")
			win = true
			break
		end

		display = gen_word_display(randword, not_known)
		puts("Your health: #{health}")
		puts("Guees the word!\n#{display}")

		print("Your guess: ")
		guess = gets().chomp()

		if( guess.length > 1 && guess == randword ) then
			puts("Correct! You win the game!")
			win = true
			break
		elsif( guess.length > 1 ) then
			puts("Wrong! -2 health")
			health -= 2
			next
		end

		if( not_known.include?(guess) ) then 
			not_known -= [guess]
			puts("Correct!")
			next
		else
			health -= 1
			puts("Wrong! -1 health")
			next
		end
	end

	2.times {puts}
	if win then puts("Congratz! You WON! :D") else puts("Game over :(") end
	puts("The word was: #{randword}")
end

game()