reordered code and made the word scrabler follow the rules of hangman by hiding a set of letters instead of random spots in the string

This commit is contained in:
user 2022-01-21 21:03:57 -05:00
parent 66a7e236a8
commit 7196c6ad37

View File

@ -1,16 +1,34 @@
#hangman game #hangman game
#01/21/2022 #01/21/2022
#load in dictionary file
#select random word between 5 and 12 letters long
a = Array.new
def pick_word(a) def pick_word(a)
rand_int = rand(0..a.size) rand_int = rand(0..a.size)
return a[rand_int].chop! return a[rand_int].chop!
end 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)
hidden_letters.each do |letter| #for each hidden letter
word.length.times do |i| #check where instances of the letter are in the word
if word[i] == letter #if you find one, replace it with a "_" in the string
word[i] = "_"
end
end
end
return word
end
#loading file into an array #loading file into an array
a = Array.new
dict = File.open('5desk.txt') dict = File.open('5desk.txt')
dict.each do |row| dict.each do |row|
a.push(row) a.push(row)
@ -21,14 +39,14 @@ word = pick_word(a)
until word.length.between?(5, 12) until word.length.between?(5, 12)
word = pick_word(a) word = pick_word(a)
end end
puts "Your word is #{word}" puts "Your word is #{word}"
#turn word into an array hidden_letters = generate_hidden_letters(word)
#hide 50% of letters randomly scrambled_word = scramble_word(word, hidden_letters)
#ask user to guess letters
#have two arrays, word and hidden word #puts the array as a readable string
#display hidden word puts scrambled_word.inspect[1...-1].gsub('"',"").gsub(',','')
#if input is included in word but not hidden word then #if input is included in word but not hidden word then
#if word[x] == input then hidden[x] == input #if word[x] == input then hidden[x] == input
#do this over the array #do this over the array
@ -37,19 +55,3 @@ puts "Your word is #{word}"
#else #else
# increase hangman counter # increase hangman counter
def scramble_word(word)
scrambled_word = Array.new
word.length.times do |i|
if rand(0..1) == 0 #do this 50% of the time
scrambled_word.push("_")
else
scrambled_word.push(word[i])
end
end
return scrambled_word
end
scrambled_word = scramble_word(word)
#puts the array as a readable string
puts scrambled_word.inspect[1...-1].gsub('"',"").gsub(',','')