#hangman game #01/21/2022 def pick_word(a) rand_int = rand(0..a.size) return a[rand_int].chop! end def generate_hidden_letters(word) hidden_letters = Array.new word.length.times do |i| if rand(0..1) == 0 #do this 50% of the time hidden_letters.push(word[i]) #create an array of letters to be hidden end end return hidden_letters end def scramble_word(word, hidden_letters, scrambled_word) hidden_letters.each do |letter| #for each hidden letter word.length.times do |i| if word[i] == letter #if you find one, replace it with a "_" in the string scrambled_word[i] = "_" end end end return scrambled_word end def unscramble_word(word, guesses, scrambled_word) guesses.each do |letter| #for each hidden letter word.length.times do |i| if word[i] == letter #if you find one, replace it with a "_" in the string scrambled_word[i] = letter end end end return scrambled_word end a = Array.new dict = File.open('5desk.txt') dict.each do |row| a.push(row) end #picking a word between 5 and 12 characters long word = pick_word(a) until word.length.between?(5, 12) word = pick_word(a) word.downcase! end #initialize some variables guess = "" guesses = Array.new wrong_guesses = 0 scrambled_word = "" scrambled_word << word hidden_letters = generate_hidden_letters(word) scrambled_word = scramble_word(word, hidden_letters, scrambled_word) puts "Word is #{word}" while true #puts the array as a readable string puts scrambled_word.inspect[1...-1].gsub('"',"").gsub(',','') #check game end conditions if hidden_letters.size == 0 puts "YOU WIN" exit end if wrong_guesses > 5 puts "YOU HANG" exit end #get player input print "Guess a letter: " guess = gets.chop unless guesses.include?(guess) #keep track of previous guesses guesses.push(guess) end #if guess is wrong, add another piece to the hangman unless word.include?(guess) wrong_guesses = wrong_guesses + 1 end print "Guesses: #{guesses.inspect[1...-1].gsub('"',"").gsub(',','')}\n\n" scrambled_word = unscramble_word(word, guesses, scrambled_word) hidden_letters.delete(guess) end #if input is included in word but not hidden word then #if word[x] == input then hidden[x] == input #do this over the array #if guess == a hidden letter # fill in that letter #else # increase hangman counter